For words and bytes, you can detect an overflow by testing if the result is less than what you added.
Due to trucation of a 16-bit word ...
$FF00 + $0180 = $0080
So the result will always be less than either of the values added if an overflow occurs.
I think i can manage myself once i am sure abour the overflow
I'm sure you could. But that's just not my way ... 
Code:
;Initialize your hardware first
A VAR WORD[2]
B VAR WORD[2]
Result VAR WORD[2]
OVRFLOW32 VAR BIT
ASM
; ===== Load 32bit Constant into DWORD =============================
MOVE?CD macro C32in, Dout ; Max= 4,294,967,296
MOVE?CB low C32in, Dout
MOVE?CB low (C32in >> 8), Dout + 1
MOVE?CB low (C32in >> 16), Dout + 2
MOVE?CB low (C32in >> 24), Dout + 3
endm
ENDASM
@ MOVE?CD 0xEFFF8, _A ; Load 983,032 into A
@ MOVE?CD 0x6FFE4, _B ; Load 458,724 into B
GOSUB Add32
LCDOUT $FE,1, "A= ",HEX4 A[1],":",HEX4 A[0]
LCDOUT $FE,$C0,"B= ",HEX4 B[1],":",HEX4 B[0]
LCDOUT $FE,$90,"Res= ",HEX4 Result[1],":",HEX4 Result[0]
LCDOUT $FE,$D0,"OVRFLOW32 = ", BIN1 OVRFLOW32
stop
; ===== Add 2 32bit variables ======================================
Add32:
OVRFLOW32 = 0
Result[0] = A[0] + B[0]
IF Result[0] < B[0] then Result[1] = 1
Result[1] = Result[1] + A[1]
IF Result[1] < A[1] then OVRFLOW32 = 1
Result[1] = Result[1] + B[1]
IF Result[1] < B[1] then OVRFLOW32 = 1
RETURN
Which displays ...
Code:
A= 000E:FFF8
B= 0006:FFE4
Res= 0015:FFDC
OVRFLOW32 = 0
HTH,
Bookmarks