[Coco] 6809 CC Reg Overflow bit
Neil Cherry
ncherry at linuxha.com
Tue Nov 6 18:40:33 EST 2018
On 11/06/2018 06:24 PM, Gene Heskett wrote:
> On Tuesday 06 November 2018 17:58:22 Brendan Donahe wrote:
>
>> Ok, dumb followup question then - if those 100s and 200s are decimal
>> (I see no $) then why is this an overflow? Is overflow for a signed
>> byte?
>
> I think so, v is set (I think) if the result is >127, for 2's complement
> math. This also explains the need for the SEX, or sign extend
> instruction, something the C compiler goes crazy with.
I think I had it wrong:
.a400
0400 0000 NEG $00 lda #100
0402 0000 NEG $00 adda #100
0404 0000 NEG $00 adda #100
0406 0000 NEG $00 nop
0407 0000 NEG $00 nop
0408 0000 NEG $00 .
.r
X=0000 Y=0000 U=0000 S=0400 A=00 B=00 D=00 C=00
P=0400 LDA #$64
.p
X=0000 Y=0000 U=0000 S=0400 A=64 B=00 D=00 C=00
P=0402 ADDA #$64
.p
X=0000 Y=0000 U=0000 S=0400 A=C8 B=00 D=00 C=0A
P=0404 ADDA #$64
.p
X=0000 Y=0000 U=0000 S=0400 A=2C B=00 D=00 C=01
P=0406 NOP
.
This is from the sbc09 emulator, I grabbed a copy and tossed it on my
Linux box. C=0A (Negative set, Overflow set) then C=01 (Negative cleared,
Overflow cleared).
Sorry too many asm languages. :-)
--
Linux Home Automation Neil Cherry ncherry at linuxha.com
http://www.linuxha.com/ Main site
http://linuxha.blogspot.com/ My HA Blog
Author of: Linux Smart Homes For Dummies
More information about the Coco
mailing list