Alright! Here's mine! It's on 7 bit though! Ha Ha. Sorry I just pasted it out of my last program. I used it to return a number from 1 to 128, but the tens column is from 0 to 12! I used the decimal point of the 10's column as the '1' in the hundreds column. It is the subtraction method. I hope Jory doesn't boot me off the list for posting trivial programs! ; --------------------------------------------------------------------- Split: ; This fuction takes in an 8 bit number, in CurrentData1, and ; splits it up into two numbers for display: a 10's column and ; a 1's column. digit2 is 10's and digit1 is 1's after return movf CurrentData1,w ; mov to w. Currentdata1 is not changed addlw 0x01 ; add 1 (midi) movwf DisplayData ; put in DisplayData movlw 0xff ; movwf Counter ; preload Counter with 0xff movlw 0x0a ; preload w with 0x0a Loop1: incf Counter,f ; start counting subwf DisplayData,f ; DisplayData - 10 btfsc _carry ; test if below zero goto Loop1 ; no, go back to Loop1 addwf DisplayData,w ; yes, add 10 back on, DisplayData = Digit1 movwf Digit1 movf Counter,w ; Counter = Digit2 movwf Digit2 bsf _DontSplit return ; --------------------------------------------------------------------- Hamilton Feltman mailto:hamilton@budhi.com Programmer and Sound Engineer |_ _||_ . _ _ _ _ |_)(_)(_|| )| . (_ (_)( | ) http://www.budhi.com