try this: 0008 301B 00031 MOVLW 00011111b ;value I always pad out the binary to 8 chars. Also try '00011111'b with ' ' chars either side as early versions of mpasm seemed to need this. Also - I do not use the tris reg. Instead use the fsr and indf reg, eg movlw trisa ;get the address of the tris reg into w movwf fsr ;store this address at the indirect setup reg movlw 00001111b ;set the io bits and store them at movwf indf ;the indirect register which is pointing to trisa This method stops having to use page 0,1 bit setups and stops compiler messages Happy Xmas ----- Stephen H Alsop ----- email: s.ssystems@easynet.co.uk www : http://easyweb.easynet.co.uk/~s.ssystems S&S Systems Ltd, Bretton Court, Manor Road, Wales Village, Sheffield S31 8PD, England. Tel: 01909 773399 * Fax: 01909 773645 ---------- : From: Tony Matthews : To: Multiple recipients of list PICLIST : Subject: mpasm question : Date: 22 December 1996 00:21 : : Hello : Would someone be willing to explain what I am doing wrong here This is : mpasm .lst file clipping for a 16c84? : : Warning[202]: Argument out of range. Least significant bits used. : 0008 301B 00031 MOVLW 11111b ;value : used to initialize data direction : Message[302]: Register in operand not in bank 0. Ensure that bank bits : are correct. : 0009 0085 00032 MOVWF TRISA ;set : ra <0:5> to input mode