Programowanie: Zapis na ekran w różnych systemach liczbowych

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 10:43, 26 cze 2008
KMK (Dyskusja | wkład)
(dr.)
← Previous diff
Wersja z dnia 18:24, 19 gru 2009
0xF (Dyskusja | wkład)
(Zapis na ekran w systemie heksadecymalnym - s/nibbel/nibble/g)
Next diff →
Linia 9: Linia 9:
lsr @ lsr @
lsr @ lsr @
- jsr nibbel+ jsr nibble
pla pla
and #$0f and #$0f
-nibbel cmp #$0a+nibble cmp #$0a
sed sed
adc #$10 adc #$10
Linia 20: Linia 20:
rts rts
</pre> </pre>
- 
==Zapis na ekran liczby BCD== ==Zapis na ekran liczby BCD==

Wersja z dnia 18:24, 19 gru 2009

Spis treści

Zapis na ekran w systemie heksadecymalnym

Pod adresem wskazywanym przez 'ekr' znajduje się początek pamięci ekranu gdzie będzie zapisana liczba heksadecymalna. Dzięki rejestrowi Y można drukować na ekranie liczby w pętli.

puthex          pha
                lsr @
                lsr @
                lsr @
                lsr @
                jsr nibble
                pla
                and #$0f
nibble          cmp #$0a
                sed
                adc #$10
                cld
                sta (ekr),y
                iny
                rts

Zapis na ekran liczby BCD

putbcd          pha
                lsr @
                lsr @
                lsr @
                lsr @
                jsr _bcd
                pla
                and #$0f
_bcd            ora #$10
                sta (ekr),y
                iny
                rts


Zapis na ekran w systemie binarnym

putbin          sec
                rol @
_bit            tax
                lda #$08
                rol @
                sta (ekr),y
                iny
                txa
                asl @
                bne _bit
                rts

Zapis na ekran bajtu w systemie dziesiętnym

putdec          sta temp0
                lda #0
                sta temp1
                sta temp2
                ldx #$08
                sed
_nxt            asl temp0
                lda temp1
                adc temp1
                sta temp1
                lda temp2
                adc temp2
                sta temp2
                dex
                bne _nxt
                cld
                lda temp2
                jsr _bcd
                lda temp1
                lsr @
                lsr @
                lsr @
                lsr @
                jsr _bcd
                lda temp1
                and #$0f
_bcd            ora #$10
                sta (ekr),y
                iny
                rts
Personal tools