BlitzDec: ; Define these (preferably on zero page): ; ; number 16 [input] The number to convert ; ; digit0 8 Used internally ; digit1 8 " " ; digit2 8 " " ; digit3 8 " " ; temp 8 " " ; temp2 8 " " lda number pha and #$0F sta digit0 pla lsr a lsr a lsr a lsr a sta digit1 lda number+1 pha and #$0F sta digit2 pla lsr a lsr a lsr a lsr a sta digit3 clc adc digit2 adc digit1 sta temp asl a adc temp asl a rol temp2 adc digit0 php sta digit0 jsr Div10A sta temp asl a asl a adc temp asl a sbc digit0 eor #$FF plp bcs Fix lsr temp2 bcc DontFix Fix: pha lda temp adc #5 sta temp pla adc #25 DontFix: pha ; stack digit0 lda digit3 asl digit3 asl digit3 adc digit3 adc digit3 sta temp2 lda digit2 asl digit2 adc digit2 adc digit2 adc temp2 adc temp adc digit1 sta digit1 jsr Div10A sta temp asl a asl a adc temp asl a sbc digit1 eor #$FF pha ; stack digit1 lda digit2 sta temp2 lda temp jsr Div10B pha ; stack digit2 lda digit3 sta temp2 lda temp jsr Div10B pha ; stack digit3 ; Display digits here. temp, pla, pla, pla, pla rts Div10A: sta temp lsr a lsr a clc adc temp ror a clc adc temp ror a lsr a lsr a clc adc temp ror a clc adc temp ror a lsr a lsr a lsr a rts Div10B: clc adc temp2 sta temp2 lsr a lsr a clc adc temp2 lsr a clc adc temp2 lsr a lsr a lsr a lsr a sta temp asl a asl a adc temp asl a sbc temp2 eor #$FF rts