Subject: Aw: [stella] 6 Digit Routine Cont. From: cybergoth@xxxxxxxx Date: Wed, 10 Sep 2003 10:20:43 +0200 (CEST) |
Hi there! > ^ How can this always produce the same amount of cycles? > ^ Why arent all the instruction cycles counted in comments? > ^ This code is obviously not needed for me, however I'm not sure how > ^many other cycles exactly I have to replace it with. These cycles don't matter. They're not the same amount either. > sta COLUP0 ; 3 > sta COLUP1 ; 3 = 10 <-- When I count, I get much more > than 10? > > ldy MsgTab,x ; 4 > ^??????? Totally lost here |Load height of graphic? I'd assume it displays different messages, so depending on the message he has to display different letters. X is the message ID and the table contains the letters. > lda LetterPtrTab,y ; 4 > sta digitPtr ; 3 > ^LetterPtrTab,Y = Address of first 8x8 Graphic? I'd think so. > lda LetterPtrTab+1,y ; 4 > ^Here is where I get lost? I don't understand how this gets compiled > ^If LetterPtrTab = $1200 and Y is $05, then this returns $1200 + 1 + 5? > ($1206)??? It returns the content at the address $1206. > ^Shouldn't this get the last byte of the second graphic? I'm confused how it > does this? the 6 digitPtr are loaded with the adresses of the chars to display. > sta digitPtr+2 ; 3 > ^digitPtr is in Zero Page... So the graphic data is loaded into RAM... No, just the pointer is set. > lda LetterPtrTab+2,y ; 4 > sta digitPtr+4 ; 3 > lda LetterPtrTab+3,y ; 4 > sta digitPtr+6 ; 3 > lda LetterPtrTab+4,y ; 4 > sta digitPtr+8 ; 3 > lda LetterPtrTab+5,y ; 4 > sta digitPtr+10 ; 3 = 46 > > > > ldy #5 ; 2 > ; ldy MsgHeightTab-1,x > txa ; 2 don't change C! > eor #MSG_C_2000 ; 2 > bne .msgLoop ; 2³ > ldy #7 ; 2 = 7/8 > .msgLoop: > > ^ All graphics are 5 height, except Copyright which is 7... > ^ These are all wasted cycles for me... in order for this to work for me > however, > ^ I have to get this exact cycle count? Again, no, since the code below kicks in with a WSYNC. Just load Y with your height. > dey ; 2 61 > sty tmpVar ; 3 64 > lda (digitPtr+$8),y ; 5 69 > tax ; 2 71 > sta WSYNC ; 3 --- 76 --- > lda (digitPtr),y ; 5 5 > sta GRP0 ; 3 8 > lda (digitPtr+$2),y ; 5 13 > sta GRP1 ; 3 16 > lda (digitPtr+$4),y ; 5 21 > sta GRP0 ; 3 24 > lda (digitPtr+$6),y ; 5 29 > sta tmpVar2 ; 3 32 > lda (digitPtr+$a),y ; 5 37 > ldy.w tmpVar2 ; 4 41 > sty GRP1 ; 3 44 > stx GRP0 ; 3 47 > sta GRP1 ; 3 50 > sta GRP0 ; 3 53 > ldy tmpVar ; 3 56 > bne .msgLoop ; 2³ 59 > > ^This all makes sense Sure? :-) > sty GRP0 > sty GRP1 > sty GRP0 > ^Why is GRP0 cleared twice? > rts Both sprites are VDEL'd, so one write is only *preloaded* until triggered by the next. > So assuming my graphics data is as follows, How do I get this subroutine to > draw it correctly? > ORG $1200 > Graphic0 .byte $00,$00,$00,$00,$00,$00,$00,$00 > Graphic1 .byte $00,$00,$00,$00,$00,$00,$00,$00 > Graphic2 .byte $00,$00,$00,$00,$00,$00,$00,$00 > Graphic3 .byte $00,$00,$00,$00,$00,$00,$00,$00 > Graphic4 .byte $00,$00,$00,$00,$00,$00,$00,$00 > Graphic5 .byte $00,$00,$00,$00,$00,$00,$00,$00 Set up LetterPtrTab like this: LetterPtrTab .word Graphic0, Graphic1, Graphic2, Graphic3, Graphic4, Graphic5 Greetings, Manuel ---------------------------------------------------------------------------------------------- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] 6 Digit Routine Cont., Chris Larkin | Thread | [stella] give me a D. give me a U. , KirkIsrael |
[stella] Uno, Glenn Saunders | Date | Re: [stella] 6 Digit Routine Cont., Thomas Jentzsch |
Month |