Programowanie: Zapis na ekran w różnych systemach liczbowych: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Xxl (dyskusja | edycje)
Nie podano opisu zmian
Xxl (dyskusja | edycje)
 
(Nie pokazano 6 wersji utworzonych przez 3 użytkowników)
Linia 1: Linia 1:
Zapis na ekran w systemie heksadecymalnym:
==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.
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.
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 21: Linia 21:
</pre>
</pre>


 
==Zapis na ekran liczby BCD==
Zapis na ekran liczby BCD:


<pre>
<pre>
Linia 40: Linia 39:




Zapis na ekran w systemie binarnym:
==Zapis na ekran w systemie binarnym==


<pre>
<pre>
putbin          ldx #$08
putbin          sec
                 sta temp
                 rol @
_bit            asl temp
_bit            tax
                 lda #$08
                 lda #$08
                 rol @
                 rol @
                 sta (ekr),y
                 sta (ekr),y
                 iny
                 iny
                 dex
                 txa
                asl @
                 bne _bit
                 bne _bit
                rts
</pre>
==Zapis na ekran bajtu w systemie dziesiętnym==
<pre>
putdec          ldx #$0f
                stx temp0
                ldx #$1a
                sec
_n1            inc temp0
                sbc #100
                bcs _n1
_n2            dex
                adc #10
                bmi _n2
                adc #$0f
                sta temp1
                lda temp0
                jsr _bcd
                txa
                jsr _bcd
                lda temp1
_bcd            sta (ekr),y
                iny
                 rts
                 rts
</pre>
</pre>


[[Kategoria:Niezbędnik kodera]]
[[Kategoria:Niezbędnik kodera]]

Aktualna wersja z 8 lut 2011, 16:10

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          ldx #$0f
                stx temp0
                ldx #$1a
                sec
_n1             inc temp0
                sbc #100
                bcs _n1
_n2             dex
                adc #10
                bmi _n2
                adc #$0f
                sta temp1
                lda temp0
                jsr _bcd
                txa
                jsr _bcd
                lda temp1
_bcd            sta (ekr),y
                iny
                rts