# Difference between revisions of "User:Zzo38/Decimal numbers"

From Nesdev wiki

Jump to navigationJump to search (Created page with "Converting a 16-bit number into decimal format. Assume the low 8-bits in X and the high 8-bits in Y. Also assume at the beginning of the pattern table (whichever one is going...") |
|||

Line 1: | Line 1: | ||

+ | [[Category:Arithmetic]] | ||

Converting a 16-bit number into decimal format. Assume the low 8-bits in X and the high 8-bits in Y. Also assume at the beginning of the pattern table (whichever one is going to be used for displaying these numbers) has numbers 0 to 9 repeated a few times. You will have tables <tt>DL0</tt>, <tt>DL1</tt>, <tt>DH0</tt>, etc for converting one digit into the decimal (each table is 256 bytes long). | Converting a 16-bit number into decimal format. Assume the low 8-bits in X and the high 8-bits in Y. Also assume at the beginning of the pattern table (whichever one is going to be used for displaying these numbers) has numbers 0 to 9 repeated a few times. You will have tables <tt>DL0</tt>, <tt>DL1</tt>, <tt>DH0</tt>, etc for converting one digit into the decimal (each table is 256 bytes long). | ||

<pre> | <pre> |

## Latest revision as of 00:29, 1 August 2017

Converting a 16-bit number into decimal format. Assume the low 8-bits in X and the high 8-bits in Y. Also assume at the beginning of the pattern table (whichever one is going to be used for displaying these numbers) has numbers 0 to 9 repeated a few times. You will have tables `DL0`, `DL1`, `DH0`, etc for converting one digit into the decimal (each table is 256 bytes long).

CLC LDA DL0,X ADC DH0,Y STA <DIGIT0 CMP #10 LDA DL1,X ADC DH1,Y STA <DIGIT1 CMP #10 LDA DL2,X ADC DH2,Y STA <DIGIT2 CMP #10 LDA #0 ADC DH3,Y STA <DIGIT3 CMP #10 LDA #0 ADC DH4,Y STA <DIGIT4

If the numbers are not at the beginning of the pattern table, you can alter the tables for converting the high 8-bits into decimal, and change `#10` into the different number by the bias of the carry that is used in this case.