Scott, I am pretty much a newbie myself and not offended by the term either. I was just about to reply when I saw Tony's reply come through. I don't know about you, but I find HEX simply confusing. Most unnatural! :-) Instead of; > start movlw 0x00 have you considered; start movlw b'00000000' tris porta tris portb Also, Tony missed this one (- I think) > movlw 0xff ;set portb high > movwf portb ;set portb to all 0's Your comment says you are setting portb all low, but isn't the hex that you've moved to W in the previous line 255? It makes no difference in your program, but the point is that it *could* :-( Just a suggestion, but I find binary easier to work in. When you need to manipulate one pin, you simply count from the right of your byte and that's the digit you change. Cheers, Sean -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads