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

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 06:59, 24 cze 2008
Xxl (Dyskusja | wkład)
(uwaga Sebana)
← Previous diff
Aktualna wersja
Xxl (Dyskusja | wkład)
(Zapis na ekran bajtu w systemie dziesiętnym - optymalizacja)
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 #'0+ adc #$10
cld cld
sta (ekr),y sta (ekr),y
Linia 21: Linia 21:
</pre> </pre>
 +==Zapis na ekran liczby BCD==
-Zapis na ekran w systemie binarnym:+<pre>
 +putbcd pha
 + lsr @
 + lsr @
 + lsr @
 + lsr @
 + jsr _bcd
 + pla
 + and #$0f
 +_bcd ora #$10
 + sta (ekr),y
 + iny
 + rts
 +</pre>
 + 
 + 
 +==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

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          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
Personal tools