Check you .lst file. It probably says something like: Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. My program is full of these things and it gets to be a little annoying. If you check the code generated, you will probably see that it made the right numbers. It just spits out this warning to highlight places where you could make a mistake (I saw in your listing that you did not. If you get your serial I/O working, I would be VERY interested in seeing your code. I wrote an interrupt based routine that does not receive. For a complete listing of my code, see the archive. You can search by name (Fred Thompson), or by date (Wed 13 Aug, 1997). Fred Thompson fthompso@mail.win.org