Код:
MACRO CHK address
.SUM = 0                        ; init values for checksumming
.ADR = address ASSERT address < $   ; starting address must be below current
        DUP $ - address        ; do simple sum of all bytes
.SUM = (.SUM + {.ADR})&$FF
.ADR = .ADR + 1
        EDUP
        DB      .SUM
	display .SUM
    ENDM


	org $8000

l0

	db $FF
	db $01
	db $02


	CHK l0
Код:
21   8000 01          	db $01
22   8001 02          	db $02
23   8002 04          	db $04
24   8003             
25   8003             
26   8003             
27   8003             
28   8003             	CHK l0
28   8003 07          >        DB      .SUM
Код:
21   8000 FF          	db $FF
22   8001 01          	db $01
23   8002 00          	db $00
24   8003             
25   8003             
26   8003             	CHK l0
26   8003 00          >        DB      .SUM
Код:
21   8000 FF          	db $FF
22   8001 01          	db $01
23   8002 02          	db $02
24   8003             
25   8003             
26   8003             	CHK l0
26   8003 02          >        DB      .SUM
вполне себе правильно работает