mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-06 03:04:43 +00:00
91c154ea7b
signed 8-bit comparisons are a huge pain on 6502
22 lines
479 B
Plaintext
22 lines
479 B
Plaintext
PT3_player
|
|
|
|
|
|
|
|
ASR = CMP #$80 / ROR
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
signed 8-bit comparison
|
|
see http://6502.org/tutorials/compare_beyond.html#2.2
|
|
|
|
SEC ; prepare carry for SBC
|
|
SBC NUM ; A-NUM
|
|
BVC LABEL ; if V is 0, N eor V = N, otherwise N eor V = N eor 1
|
|
EOR #$80 ; A = A eor $80, and N = N eor 1
|
|
LABEL
|
|
|
|
If the N flag is 1, then A (signed) < NUM (signed) and BMI will branch
|
|
If the N flag is 0, then A (signed) >= NUM (signed) and BPL will branch
|