Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!husc6!m2c!applix!scott
From: scott@applix.UUCP (Scott Evernden)
Newsgroups: comp.sys.amiga.tech
Subject: Re: 68000 DBcc command
Message-ID: <744@applix.UUCP>
Date: 16 Jul 88 02:25:53 GMT
References: <2911@umd5.umd.edu> <7332@cup.portal.com>
Reply-To: scott@applix.UUCP (Scott Evernden)
Organization: APPLiX Inc., Westboro MA
Lines: 22

In article <7332@cup.portal.com> Julian@cup.portal.com writes:
> ...  Strangely, the DBEQ command would only decrement
>d3 whenever the Z flag was cleared. According to the Motorola 68000 reference
>manual, the condition codes play no role in any DBxx command. What is going on?

DBxx does this:
	1. It checks the condition codes to see if a termination condition
	   has been met.  If so, it does nothing, and execution continues
	   with the next instruction.
	2. Next, it decrements a register, and compares it to -1.  If equal,
	   it does nothing, and execution continues.  Otherwise, the branch
	   is taken.

DBEQ d3, label 
can be read as "Until Z is clear, decrement d3, and branch if it isn't -1."
	  
My guess is that you really want to use:
		DBF d3,loop
	or:
		until FALSE is TRUE, decrement d3, and if it's not -1,
		then branch to 'loop'.

-scott