Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > How is carry affected by compare?
2010-11-10 19:40
Mace

Registered: May 2002
Posts: 1799
How is carry affected by compare?

Somewhere I read that the carry is affected by the result of a compare.
It's not in the Prog.Ref.Guide, other than a flag in the register table.

How does this work?
2010-11-10 19:44
chatGPZ

Registered: Dec 2001
Posts: 11386
cmp works exactly like sbc, except the result isnt stored in A
2010-11-10 19:46
Oswald

Registered: Apr 2002
Posts: 5094
http://www.6502.org/tutorials/compare_beyond.html#2.1
2010-11-10 20:01
JackAsser

Registered: Jun 2002
Posts: 2014
@Groepaz: Is a CMP really affected by the decimal-bit, like SBC is?
2010-11-10 20:01
Mr. SID

Registered: Jan 2003
Posts: 424
cmp is like sbc but the carry is set before automatically, so you don't have to do that.
2010-11-10 20:18
Mace

Registered: May 2002
Posts: 1799
So in the following code, both SEC and CLC are useless?
	lda #{some value}
	sec
	cmp #$00
	beq !fwrd+
	clc
!fwrd:
	rts


I know that the whole CMP is not needed, but the purpose of the routine is to SEC when A<>0 and CLC when A=0.
2010-11-10 20:36
Oswald

Registered: Apr 2002
Posts: 5094
according to my link this should work:

cmp #$00
beq +
clc
+


(If the C flag is 1, then A (unsigned) >= NUM (unsigned) and BCS will branch)
2010-11-10 20:47
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
@Groepaz: Is a CMP really affected by the decimal-bit, like SBC is?

i dont know - but internally a CMP really _is_ a SBC, ie the exact same operation is performed, using the same logic blocks. so it should be like you say, would make sense at least :)
2010-11-10 20:59
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: according to my link this should work:

cmp #$00
beq +
clc
+


(If the C flag is 1, then A (unsigned) >= NUM (unsigned) and BCS will branch)


cmp #$01

>=1 => C=1
<1 => C=0
2010-11-10 21:07
Mace

Registered: May 2002
Posts: 1799
\o/
I love hardcore coding like this :-D
2010-11-10 22:11
Oswald

Registered: Apr 2002
Posts: 5094
Quote: cmp #$01

>=1 => C=1
<1 => C=0


you win. I had the idea that one cmp may be enough, but too tired to think it trough :P :)
 
... 27 posts hidden. Click here to view all posts....
 
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
ΛΛdZ
Peacemaker/CENSOR/Hi..
The Human Co../Maste..
daimansion
megasoftargentina
fugu/Excess
chronos/Therapy
JSL
kbs/Pht/Lxt
REBEL 1/HF
krissz
Mibri/ATL^MSL^PRX
Guests online: 115
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Logo Graphicians
1 t0m3000  (10)
2 Sander  (9.8)
3 Mermaid  (9.5)
4 Facet  (9.4)
5 Shine  (9.4)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.087 sec.