Programowanie: Zapis na ekran w różnych systemach liczbowych
From Atariki
(Różnice między wersjami)
Wersja z dnia 07:37, 24 cze 2008 Xxl (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 08:28, 24 cze 2008 Xxl (Dyskusja | wkład) Next diff → |
||
Linia 52: | Linia 52: | ||
dex | dex | ||
bne _bit | bne _bit | ||
+ | rts | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | Zapis na ekran bajtu w systemie dziesiętnym: | ||
+ | |||
+ | <pre> | ||
+ | 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 | rts | ||
</pre> | </pre> | ||
[[Kategoria:Niezbędnik kodera]] | [[Kategoria:Niezbędnik kodera]] |
Wersja z dnia 08:28, 24 cze 2008
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 nibbel pla and #$0f nibbel 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 ldx #$08 sta temp _bit asl temp lda #$08 rol @ sta (ekr),y iny dex 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