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.
Cheers,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">"[2J"</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">" A=clear All, (1-4)=Clear Counter#, R=Refresh screen"</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">"A"</font>,<font color="#FF0000">"a" </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">"R"</font>,<font color="#FF0000">"r" </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">"1"</font>,<font color="#FF0000">"2"</font>,<font color="#FF0000">"3"</font>,<font color="#FF0000">"4" </font><font color="#0000FF"><b><i>' numbers clear that counter only </i></b></font><b>Counter</b>(<b>Idx </b>- <font color="#FF0000">"1"</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>& <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>& ~<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">"[H"</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">": "</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>







Bookmarks