English Amiga Board Amiga Lore


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
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  
Old 29 June 2015, 15:42   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,561
It is correct and matches real hardware.

SKIP does not actually skip anything.

It only sets internal variable that causes following MOVE (only if following instruction is MOVE) to do the move to dummy address. MOVE cycle sequence is still the same, "skipped" or not.

Nothing happens if following instruction is another SKIP or WAIT.
Toni Wilen is online now  
Old 29 June 2015, 15:54   #3
neoman
Registered User
 
Join Date: Dec 2012
Location: Bergkirchen / Germany
Posts: 35
Okay, I see. So no way to do negative SKIPs =/

Thanks!
neoman is offline  
Old 29 June 2015, 16:46   #4
neoman
Registered User
 
Join Date: Dec 2012
Location: Bergkirchen / Germany
Posts: 35
Okay, I solved my problems with a sequence like

Code:
SKIP
JUMP1
JUMP2
That's what I meant by "negative" SKIP. Basically I needed if then else and this is working fine now =) Thanks again.
neoman is offline  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Artifacts with frame skip and double, fields line mode mark_k support.WinUAE 0 17 March 2014 14:02
Combining copper scrolling with copper background phx Coders. Asm / Hardware 14 16 June 2013 07:26
Unable to skip intro in Another World machrider support.Games 12 15 December 2007 17:25
fix or skip dms-errors Adderly support.Other 2 26 July 2006 02:39
The Settlers... intro skip Djay support.Games 4 13 November 2003 23:37

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 20:46.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.12138 seconds with 11 queries