Another thing to watch out for (and I've been burned by this) is that you may have a table that crosses a boundary. The two pieces of code seem to work just fine by them selves, but when integrated into one file they fail... Take a look at the .lst file and see if any tables are slipping across the 256 byte boundaries. Scott On Mon, 20 Mar 2000, Don Hyde wrote: > Usually by overflowing the stack and breaking some other Call/Return. > > > -----Original Message----- > > From: Grant Forest [mailto:gforest@NETSPACE.NET.AU] > > Sent: Monday, March 20, 2000 3:04 AM > > To: PICLIST@MITVMA.MIT.EDU > > Subject: How can a CALL break other Code > > > > > > Goodday, > > Have blended a comms and a LCD routine so that I can > > echo back my Hyper terminal character and also display > > it on the LCD.(and it works(big deal I hear you say)) > > Now blended a I2C routine and still get the echo OK but > > incorrect character on the LCD. > > The thing that concerns me is, if I am not using interrupts > > nor WDT, and have checked that am not reusing register file > > from another routine, how can a Call mess proven code?? > > Could attach the code, but do not want a free ride for the fix, > > just some general points that I must have over looked. > > Tks. > > And Tks for the barking dog answers. > > >