Well, I can't offer any suggestions for fixing what you have, other than CTRL-A/DEL.

Give this a try with HyperTerminal or equivalent @ 19200 baud.
I'm assuming it's a 16F877.
Code:
<font color="#008000"><b>CLEAR                              </b></font><font color="#0000FF"><b><i>' Clear all User RAM
</i></b></font><font color="#008000"><b>DEFINE </b></font><b>OSC </b><font color="#800000"><b>8                       </b></font><font color="#0000FF"><b><i>' change to match your crystal
</i></b></font><font color="#008000"><b>DEFINE </b></font><b>LOADER_USED </b><font color="#800000"><b>1               </b></font><font color="#0000FF"><b><i>' if using a bootloader

</i></b></font><font color="#008000"><b>DEFINE </b></font><b>HSER_BAUD </b><font color="#800000"><b>19200             </b></font><font color="#0000FF"><b><i>' Hser baud rate 
</i></b></font><font color="#008000"><b>DEFINE </b></font><b>HSER_CLROERR </b><font color="#800000"><b>1              </b></font><font color="#0000FF"><b><i>' Hser clear overflow automatically 
</i></b></font><font color="#008000"><b>DEFINE </b></font><b>HSER_RCSTA </b><font color="#800000"><b>90</b></font><b>h              </b><font color="#0000FF"><b><i>' Hser receive status init 
</i></b></font><font color="#008000"><b>DEFINE </b></font><b>HSER_TXSTA </b><font color="#800000"><b>24</b></font><b>h              </b><font color="#0000FF"><b><i>' Hser transmit status init 

</i></b></font><b>B        </b><font color="#008000"><b>VAR BYTE
</b></font><b>LastB    </b><font color="#008000"><b>VAR BYTE                  </b></font><font color="#0000FF"><b><i>' state of pins Last time they changed
</i></b></font><b>Diff     </b><font color="#008000"><b>VAR BYTE                  </b></font><font color="#0000FF"><b><i>' Difference tween Last and Current bits
</i></b></font><b>Active   </b><font color="#008000"><b>VAR BYTE                  </b></font><font color="#0000FF"><b><i>' Indicates which inputs are active(LOW)
</i></b></font><b>Idx      </b><font color="#008000"><b>VAR BYTE                  </b></font><font color="#0000FF"><b><i>' generic loop counter
</i></b></font><b>Counter  </b><font color="#008000"><b>VAR WORD</b></font>[<font color="#800000"><b>4</b></font>]               <font color="#0000FF"><b><i>' The values of the counters

</i></b></font><b>OPTION_REG</b>.<font color="#800000"><b>7 </b></font>= <font color="#800000"><b>0                   </b></font><font color="#0000FF"><b><i>' enable PORTB pull-ups

;---[clear screen + display menu]-------------------------------------------
</i></b></font><b>Refresh</b>:
    <font color="#008000"><b>HSEROUT </b></font>[<font color="#800000"><b>27</b></font>,<font color="#FF0000">&quot;[2J&quot;</font>,<font color="#800000"><b>10</b></font>,<font color="#800000"><b>10</b></font>,<font color="#800000"><b>10</b></font>,<font color="#800000"><b>10</b></font>,<font color="#800000"><b>10</b></font>,<font color="#800000"><b>10</b></font>, <b>_
             </b><font color="#FF0000">&quot; A=clear All, (1-4)=Clear Counter#, R=Refresh screen&quot;</font>]
    <font color="#008000"><b>GOTO </b></font><b>DisplayCounters

Main</b>:
    <font color="#0000FF"><b><i>;---[Handle incoming serial data]---------------------------------------
    </i></b></font><font color="#008000"><b>IF </b></font><b>PIR1</b>.<font color="#800000"><b>5 </b></font><font color="#008000"><b>THEN                 </b></font><font color="#0000FF"><b><i>' If serial data has been received
        </i></b></font><font color="#008000"><b>HSERIN </b></font>[<b>Idx</b>]               <font color="#0000FF"><b><i>' get the byte
        </i></b></font><font color="#008000"><b>SELECT CASE </b></font><b>Idx            </b><font color="#0000FF"><b><i>' What did we receive?
          </i></b></font><font color="#008000"><b>CASE </b></font><font color="#FF0000">&quot;A&quot;</font>,<font color="#FF0000">&quot;a&quot;             </font><font color="#0000FF"><b><i>' A - Clear all counters
              </i></b></font><font color="#008000"><b>FOR </b></font><b>Idx </b>= <font color="#800000"><b>0 </b></font><font color="#008000"><b>TO </b></font><font color="#800000"><b>3
                </b></font><b>Counter</b>(<b>Idx</b>) = <font color="#800000"><b>0
              </b></font><font color="#008000"><b>NEXT </b></font><b>Idx
              </b><font color="#008000"><b>GOTO </b></font><b>DisplayCounters
          </b><font color="#008000"><b>CASE </b></font><font color="#FF0000">&quot;R&quot;</font>,<font color="#FF0000">&quot;r&quot;             </font><font color="#0000FF"><b><i>' Refresh ANSI Terminal screen
              </i></b></font><font color="#008000"><b>GOTO </b></font><b>Refresh    
          </b><font color="#008000"><b>CASE </b></font><font color="#FF0000">&quot;1&quot;</font>,<font color="#FF0000">&quot;2&quot;</font>,<font color="#FF0000">&quot;3&quot;</font>,<font color="#FF0000">&quot;4&quot;     </font><font color="#0000FF"><b><i>' numbers clear that counter only
              </i></b></font><b>Counter</b>(<b>Idx </b>- <font color="#FF0000">&quot;1&quot;</font>) = <font color="#800000"><b>0
              </b></font><font color="#008000"><b>GOTO </b></font><b>DisplayCounters
          </b><font color="#008000"><b>CASE ELSE
              HSEROUT </b></font>[<font color="#800000"><b>8</b></font>,<font color="#800000"><b>7</b></font>]         <font color="#0000FF"><b><i>' send backspace + bell
        </i></b></font><font color="#008000"><b>END SELECT
    ENDIF
    </b></font><font color="#0000FF"><b><i>'---[Count Pulses]------------------------------------------------------
    </i></b></font><b>B </b>= <b>PORTB </b>&amp; <font color="#800000"><b>$F0                </b></font><font color="#0000FF"><b><i>' isolate upper 4-bits
    </i></b></font><b>Diff </b>= <b>B </b>^ <b>LastB               </b><font color="#0000FF"><b><i>' see if any of them changed
    </i></b></font><font color="#008000"><b>IF </b></font><b>Diff </b>!= <font color="#800000"><b>0 </b></font><font color="#008000"><b>THEN              </b></font><font color="#0000FF"><b><i>' if any of them changed
        </i></b></font><b>LastB </b>= <b>B
        Active </b>= <b>Diff </b>&amp; ~<b>B         </b><font color="#0000FF"><b><i>' determine which ones are Active
        </i></b></font><font color="#008000"><b>IF </b></font><b>Active </b>!= <font color="#800000"><b>0 </b></font><font color="#008000"><b>THEN
            IF </b></font><b>Active</b>.<font color="#800000"><b>4 </b></font><font color="#008000"><b>THEN </b></font><b>Counter</b>(<font color="#800000"><b>0</b></font>) = <b>Counter</b>(<font color="#800000"><b>0</b></font>) + <font color="#800000"><b>1 </b></font><font color="#0000FF"><b><i>' increment actives
            </i></b></font><font color="#008000"><b>IF </b></font><b>Active</b>.<font color="#800000"><b>5 </b></font><font color="#008000"><b>THEN </b></font><b>Counter</b>(<font color="#800000"><b>1</b></font>) = <b>Counter</b>(<font color="#800000"><b>1</b></font>) + <font color="#800000"><b>1
            </b></font><font color="#008000"><b>IF </b></font><b>Active</b>.<font color="#800000"><b>6 </b></font><font color="#008000"><b>THEN </b></font><b>Counter</b>(<font color="#800000"><b>2</b></font>) = <b>Counter</b>(<font color="#800000"><b>2</b></font>) + <font color="#800000"><b>1
            </b></font><font color="#008000"><b>IF </b></font><b>Active</b>.<font color="#800000"><b>7 </b></font><font color="#008000"><b>THEN </b></font><b>Counter</b>(<font color="#800000"><b>3</b></font>) = <b>Counter</b>(<font color="#800000"><b>3</b></font>) + <font color="#800000"><b>1
            </b></font><font color="#008000"><b>GOTO </b></font><b>DisplayCounters
        </b><font color="#008000"><b>ENDIF
    ENDIF
    PAUSE </b></font><font color="#800000"><b>20
</b></font><font color="#008000"><b>GOTO </b></font><b>Main

</b><font color="#0000FF"><b><i>'--[Display Counter Values]-------------------------------------------------
</i></b></font><b>DisplayCounters</b>:    
    <font color="#008000"><b>HSEROUT </b></font>[<font color="#800000"><b>27</b></font>,<font color="#FF0000">&quot;[H&quot;</font>]      <font color="#0000FF"><b><i>' home cursor (ANSI)
    </i></b></font><font color="#008000"><b>FOR </b></font><b>Idx </b>= <font color="#800000"><b>0 </b></font><font color="#008000"><b>TO </b></font><font color="#800000"><b>3       </b></font><font color="#0000FF"><b><i>' display all counter values
        </i></b></font><font color="#008000"><b>HSEROUT</b></font>[<font color="#008000"><b>DEC </b></font>(<b>Idx</b>+<font color="#800000"><b>1</b></font>),<font color="#FF0000">&quot;: &quot;</font>,<font color="#008000"><b>DEC5 </b></font><b>Counter</b>(<b>Idx</b>),<font color="#800000"><b>13</b></font>,<font color="#800000"><b>10</b></font>]
    <font color="#008000"><b>NEXT </b></font><b>Idx
    </b><font color="#008000"><b>HSEROUT </b></font>[<font color="#800000"><b>13</b></font>,<font color="#800000"><b>10</b></font>]
<font color="#008000"><b>GOTO </b></font><b>Main
</b>
Cheers,