View Single Post
Old 29 June 2015, 15:32   #1
neoman
Registered User
 
Join Date: Dec 2012
Location: Bergkirchen / Germany
Posts: 35
Copper SKIP after SKIP

Hello,

I'm playing around with Copper SKIPs and JUMPs and I've noticed that a SKIP directly after a successful SKIP is executed though. Copper code is something like:

Code:
MOVE
SKIP - this one is successful, so it should skip over the next SKIP to JUMP, but he continue just right ....
SKIP - here... :-P
JUMP
copper.cpp, line 6318:
Code:
if (cop_state.i1 & 1) { // WAIT or SKIP
	cop_state.ignore_next = 0;
	if (cop_state.i2 & 1)
		cop_state.state = COP_skip_in2;
	else
		cop_state.state = COP_wait_in2;
#ifdef DEBUGGER
	if (debug_dma)
		record_dma (0x8c, cop_state.i2, cop_state.ip - 2, old_hpos, vpos, DMARECORD_COPPER);
	if (memwatch_enabled)
		debug_wgetpeekdma_chipram(cop_state.ip - 2, cop_state.i2, MW_MASK_COPPER, 0x8c);
#endif
}
Here ignore_next is reset to 0 instead of emitting a 0x1FE/NO-OP like in the MOVE command.

Is that intended and can I find it in the hardware docs?

Thanks,
neoman
neoman is offline  
AdSense AdSense  
 
Page generated in 0.05103 seconds with 9 queries