Programowanie: Zapis na ekran w różnych systemach liczbowych
From Atariki
(Różnice między wersjami)
Wersja z dnia 08:33, 24 cze 2008 Xxl (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 18:52, 24 cze 2008 0xF (Dyskusja | wkład) (krótsze i szybsze putbin) Next diff → |
||
Linia 43: | Linia 43: | ||
<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 | rts |
Wersja z dnia 18:52, 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 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