Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
0 CLV
1 BIT CONST64
NZ
00 CMP #A-1
01 CMP #A
10 CMP #A+1
11 BIT CONST128 ; w pętli zrobiliśmy BIT, bo przecież nie PLP, trzeba obsłużyć razem z V
C
0 CLC
1 SEC
I - tylko jeśli mamy IRQ
0 CLI
D - teoretycznie, bo raczej nie zmieniamy na przerwaniu
0 CLD
1 SED
NZ
00 LSR $D20C
01 INC $D20C
10 DEC $D20C
NZ
00 INC $D01E ; bez ruszania C
01 INC $D406 ; pod $D20C może być SIO FIFO
10 DEC $D406
11 BIT CONST128 lub BIT CONST192 w zależności od V
BIT foo
; N=Z=1
PHP
...
LDA #$ff
PLP
konop:
odczyty ze stosu są szybsze (3 cykle)lda oldFlags
pha
and #$c2 ; NVZ
sta restoreNZJump+1
plp
ldx oldS
txs
lda oldA
ldx oldX
ldy oldY
restoreNZJump
jmp (restoreNZJumpTable)
ert <restoreNZJumpTable
org restoreNZJumpTable
dta a(restoreN0Z0,restoreN0Z1)
restoreN0Z0
inc $d01e
jmp (oldPC)
restoreN0Z1
inc $d406
jmp (oldPC)
restoreN1Z0
dec $d406
jmp (oldPC)
restoreN1V0Z1
bit const128
jmp (oldPC)
const128 dta 128
restoreN1V1Z1
bit const192
jmp (oldPC)
const192 dta 192
org restoreNZJumpTable+$40
dta a(restoreN0Z0,restoreN0Z1)
org restoreNZJumpTable+$80
dta a(restoreN1Z0,restoreN1V0Z1)
org restoreNZJumpTable+$c0
dta a(restoreN1Z0,restoreN1V1Z1)
Od 1 do 9 z 9