Programowanie: Jak stwierdzić typ procesora: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
mNie podano opisu zmian |
+ komentarze |
||
| 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]]. Nielegalne 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> | ||
Wersja z 29 gru 2007, 21:38
Procedura sprawdzająca, czy zamontowany w komputerze procesor to 6502, 65C02 czy 65C816. Nielegalne 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.