[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] Supexec taking one VBL?




the code just sets a temp to -1 or 0. I don't think that would change
the background screen color.

Oh yeah, I attached old version, shame on me. I attached correct one now, where you can see that effect -- under TOS, screen borders (ignore the area in the middle) are black all the time. Under FreeMiNT, in the first moment it looks right but after 2-3 seconds you'll notice white flashes here and there -- the effect of random signalization of Supexec(); when you try to move mouse or type something on keyboard, it's get even worser.

I don't see how it makes it a lot harder. What if you simply moved the
Vsync to the mark_super subroutine? Wouldn't that fix the issue?
On the contrary, the opposite thing will happen -- we have some tight 60fps effect... we call our supexec'ed code... this calling takes some time... then we're going to wait for VBL... the result is when we miss that VBL (Supexec() wasn't fast enough) we're going wait until NEXT VBL is going to occur. Try to move Vsync() into mark_super and you'll see. Even under TOS it is disaster (nearly every VBL missed).

--
MiKRO / Mystic Bytes
http://mikro.atari.org

		COMMENT	HEAD=%111
		
		pea	set_res
		move.w	#$26,-(sp)
		trap	#14
		addq.l	#6,sp

loop:		move.w	#$25,-(sp)
		trap	#14
		addq.l	#2,sp
		
		move.l	#-1,temp
		bsr	mark
		bsr	xxx
		move.l	#0,temp
		bsr	mark
		
		bra	loop

mark:		pea	mark_super
		move.w	#$26,-(sp)
		trap	#14
		addq.l	#6,sp
		rts
	
mark_super:	move.l	temp,$ffff9800.w
		rts
		
xxx:		move.w	#5000-1,d7
.loop:		;nop
		;nop
		;nop
		;nop
		;nop
		;nop
		;nop
		;nop
		nop
		dbra	d7,.loop
		rts
		
temp:		ds.l	1

* Monitor: VGA
* 160*240, 16 Farben, 60.0 Hz, 31470 Hz

set_res:
	MOVE.L   #$C6008D,$FFFF8282.W
        MOVE.L   #$150012,$FFFF8286.W
        MOVE.L   #$1B0097,$FFFF828A.W
        MOVE.L   #$41903FF,$FFFF82A2.W
        MOVE.L   #$3F003D,$FFFF82A6.W
        MOVE.L   #$3FD0415,$FFFF82AA.W
        MOVE.W   #$200,$FFFF820A.W
        MOVE.W   #$186,$FFFF82C0.W
        CLR.W    $FFFF8266.W
        MOVE.W   #$0,$FFFF8266.W
        MOVE.W   #$5,$FFFF82C2.W
        MOVE.W   #$28,$FFFF8210.W
	rts