Programowanie: Zapis na ekran w różnych systemach liczbowych
From Atariki
(Różnice między wersjami)
Wersja z dnia 08:28, 24 cze 2008 Xxl (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 08:33, 24 cze 2008 Xxl (Dyskusja | wkład) Next diff → |
||
Linia 59: | Linia 59: | ||
<pre> | <pre> | ||
- | putdec sta temp0 | + | putdec sta temp0 |
- | lda #0 | + | lda #0 |
- | sta temp1 | + | |
- | sta temp2 | + | |
- | ldx #$08 | + | |
- | sed | + | |
- | _nxt asl temp0 | + | |
- | lda temp1 | + | |
- | adc temp1 | + | |
sta temp1 | sta temp1 | ||
- | lda temp2 | + | sta temp2 |
- | adc temp2 | + | ldx #$08 |
+ | sed | ||
+ | _nxt asl temp0 | ||
+ | lda temp1 | ||
+ | adc temp1 | ||
+ | sta temp1 | ||
+ | lda temp2 | ||
+ | adc temp2 | ||
sta temp2 | sta temp2 | ||
dex | dex | ||
bne _nxt | bne _nxt | ||
cld | cld | ||
- | lda temp2 | + | lda temp2 |
jsr _bcd | jsr _bcd | ||
- | lda temp1 | + | lda temp1 |
lsr @ | lsr @ | ||
lsr @ | lsr @ |
Wersja z dnia 08:33, 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