>1) The USART asynchronous mode "uses standard nonreturn to zero )NRZ) >format..." is this what RS-232 uses? Can I just hang a MAX232 off the >pins and get an RS-232 port? Yes. >2) What is this whole shebang about two banks of registers? If I need to >swap the two banks in and out, why do they have different addresses? I'm >confused. I mean, portc is at 07h and trisc is at 87h. They have unique >addresses, why is it necessary to switch banks? Can't they just be >addressed directly? Look at the description in the data sheet of, for example, ADDWF. You'll see that the instruction includes SEVEN bits to address the file register. That is, it can select one register from 128. 87h is 135. So the ADDWF is unable to address every register from 00h to 87h. To overcome this limitation, two EXTRA address bits are stored in the status register. These extra address bits are then prefixed to the address bits in the instruction, giving a NINE bit address. As you point out, this is now enough to select the register. However, you must ensure that the extra address bits in the status register are properly set before you execute the instruction, so that the desired nine bit address is generated. ___Bob