Programowanie: Jak stwierdzić typ procesora: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
mNie podano opisu zmian
Mazi (dyskusja | edycje)
mNie podano opisu zmian
 
(Nie pokazano 4 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
Procedura sprawdzająca, czy zamontowany w komputerze procesor to [[6502]], [[65C02]] czy [[65C816]].
Procedura sprawdzająca, czy zamontowany w komputerze [[procesor]] to [[6502]], [[65C02]] czy [[65C816]]. Niepublikowane rozkazy 6502 nie są używane.


<pre>
<pre>
     .816
     .816
     lda #$99
     lda #$99       ;W 6502 dodawanie dziesiętne 99+1
     clc
     clc           ;daje w wyniku zero, ale znacznik Z
     sed
     sed           ;ma stan taki, jak po dodawaniu binarnym.
     adc #$01
     adc #$01       ;W 65C02 poprawiono to.
     cld
     cld
     beq cmos
     beq cmos
Linia 12: Linia 12:
     rts
     rts


cmos rep #$02
cmos rep #$02      ;CPU to co najmniej 65C02. Rozkaz REP #$02
     bne c816
     bne c816       ;ustawia Z=0 w 65C816, a na 65C02 nie robi nic.
     inc
     inc
     rts
     rts


c816 lda #$02
c816 lda #$02       ;Mamy 65C816.
     rts
     rts
</pre>
</pre>


Po wykonaniu procedury w akumulatorze jest 0 dla procesora 6502, 1 dla 65C02 oraz 2 dla 65C816.
Po wykonaniu procedury w akumulatorze jest 0 dla procesora [[6502]], 1 dla [[65C02]] oraz 2 dla [[65C816]].


[[Kategoria:Programowanie Atari 8-bit]]
[[Kategoria: Niezbędnik kodera]]
[[Kategoria: Niezbędnik kodera]]

Aktualna wersja z 15 gru 2013, 14:35

Procedura sprawdzająca, czy zamontowany w komputerze procesor to 6502, 65C02 czy 65C816. Niepublikowane rozkazy 6502 nie są używane.

     .816
     lda #$99       ;W 6502 dodawanie dziesiętne 99+1
     clc            ;daje w wyniku zero, ale znacznik Z
     sed            ;ma stan taki, jak po dodawaniu binarnym.
     adc #$01       ;W 65C02 poprawiono to. 
     cld
     beq cmos
     lda #$00       ;ustawia znacznik Z jak należy
     rts

cmos rep #$02       ;CPU to co najmniej 65C02. Rozkaz REP #$02
     bne c816       ;ustawia Z=0 w 65C816, a na 65C02 nie robi nic.
     inc
     rts

c816 lda #$02       ;Mamy 65C816.
     rts

Po wykonaniu procedury w akumulatorze jest 0 dla procesora 6502, 1 dla 65C02 oraz 2 dla 65C816.