Subject: [stella] Math riddle : Loading TIM64T with 43 burns only 36 scanlines (not 37) From: Christian Bogey <khryssun@xxxxxxxx> Date: Mon, 10 May 2004 15:09:52 +0200 (CEST) |
I noticed the latest demos I wrote generated only 261 scanlines instead of 262...the only thing I changed was the use of TIM64T (instead of looping 37 WSYNC) for the Vertical Blank, so I made some tests and I located the source of the problem : Using the following code burns only 36 scanlines instead of 37 (?!?) : LDA #43 STA TIM64T Wait_VBLANK_End LDA INTIM BNE Wait_VBLANK_End STA WSYNC But I don't understand why !!! indeed : - Storing 43 into TIM64T burns 43*64 = 2752 cycles - so when INTIM reaches 0 : 2752/76 cycles = 36.21 scanlines were burnt. - so wainting till the end of the current line with STA WSYNC should give us 37 scanlines burnt. Right ? Wrong ! It works in theory but doesn't seems to work in practice. I've included a demo to this post (with the source) that just do the Vertical Sync and the Vertical Blank Period using TIM64T : The program doesn't display anything. It should be run with the DOS version of Z26. Launch it then press alt-9 to display the number of scanlines generated = 39 instead of 40 (!?!) I don't understand where I'am wrong ! Does anyone see where I'am making a mistake ? This drives me crazy ! Take care, Chris Yahoo! Mail : votre e-mail personnel et gratuit qui vous suit partout ! Créez votre Yahoo! Mail sur http://fr.benefits.yahoo.com/ Dialoguez en direct avec vos amis grâce à Yahoo! Messenger !Téléchargez Yahoo! Messenger sur http://fr.messenger.yahoo.com
Attachment:
Bad_VBLANK.asm
Description: Bad_VBLANK.asm
Attachment:
Bad_VBLANK.bin
Description: Bad_VBLANK.bin
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Aw: Re: [stella] OT: I'm Doomed, cybergoth | Thread | Re: [stella] Math riddle : Loading , Chris Wilkson |
Aw: Re: Aw: Re: Aw: Re: [stella] As, cybergoth | Date | Re: [stella] Math riddle : Loading , Chris Wilkson |
Month |