org &1000 PrintChar equ &BB5A ld ix,NumberRam main: ld a,(ix+7) call ShowHex ld a,(ix+6) call ShowHex ld a,(ix+5) call ShowHex ld a,(ix+4) call ShowHex ld a,(ix+3) call ShowHex ld a,(ix+2) call ShowHex ld a,(ix+1) call ShowHex ld a,(ix+0) call ShowHex ;NEW LINE ld a,13 call PrintChar ld a,10 call PrintChar ld a,(ix+0) add 1 ;we can't just INC (ix+0) since that wouldn't affect the carry flag. So we have to add one to the value. ld (ix+0),a ld a,(ix+1) adc 0 ;and carry it forward up to the max number of digits. ld (ix+1),a ld a,(ix+2) adc 0 ld (ix+2),a ld a,(ix+3) adc 0 ld (ix+3),a ld a,(ix+4) adc 0 ld (ix+4),a ld a,(ix+5) adc 0 ld (ix+5),a ld a,(ix+6) adc 0 ld (ix+6),a ld a,(ix+7) adc 0 ld (ix+7),a jp main ret ;RETURN TO BASIC ShowHex: push af and %11110000 rrca rrca rrca rrca call PrintHexChar pop af and %00001111 ;call PrintHexChar ;execution flows into it naturally. PrintHexChar: ;this converts hexadecimal to ascii. or a ;Clear Carry Flag daa add a,&F0 adc a,&40 jp PrintChar ;ret NumberRam: ;a 64-bit value, stored little-endian db 01,00,00,00,00,00,00,00