; A simple 'animation routine' ; 6809 for Vectrex (by Manu/PKP - man@sci.fi) ; Public domain for all the VecFreaks ; Big thanks again to Marq WAITRECAL equ $f192 MOVEPEN equ $f2fc MOVEDRAW equ $f3b7 INTENSITY equ $f2ab RESET0REF equ $f354 ; ### Variables indeksi equ $c881 ; A variable for location time equ $c882 ; A variable for time ; ### The basic init block org 0 fcb $67,$20 fcc "GCE MANU" fcb $80 fdb musa,$f850,$30b8 fcc "ANIMATION" fcb $80,$0 ; ### Actual program clra ; Reset time sta indeksi ; and index sta time ; just to make sure. animi jsr WAITRECAL ; Resets the BIOS jsr RESET0REF ; lda #0 ; Set Y-coordinate ldb #0 ; Set X-coordinate jsr MOVEPEN ; Move pen to Y,X lda #100 ; Set intensity jsr INTENSITY ; as 100 (pretty bright) lda indeksi ; Gets index. asla ; Double the A to get a word. ldx #table ; Loads the ldx a,x ; vector list for this frame. lda #5 ; Number of vectors. ldb #50 ; Set the scale. jsr MOVEDRAW ; Draw the vectors. inc time ; Increase time by 1. lda time ; Check what time is now. cmpa #10 ; If it's not 10, then bne animi ; draw again, otherwise ; continue. clra ; Clear A and sta time ; reset time. inc indeksi ; Increase location by 1. lda indeksi ; Check what location is now. cmpa #6 ; If it's not 6, then bne animi ; jump back to start. ; (There's 6 frames 0-5) clra ; But if it is 6, then sta indeksi ; reset it bra animi ; jump back to start. table ; The frames fcw tahti1,tahti2,tahti3,tahti4,tahti5,tahti6 tahti1 ; Vectorlist for the 1st star # fcb -40,-30,100,30,-100,30,60,-80,0,100,-60,-80 tahti2 ; Vectorlist for the 2nd star # fcb -40,-20,100,20,-100,20,60,-50,0,60,-60,-50 tahti3 ; Vectorlist for the 3rd star # fcb -40,-10,100,10,-100,10,60,-20,0,20,-60,-20 tahti4 ; Vectorlist for the 4th star # fcb -40,0,100,0,-100,0,100,0,-100,0,100,0 tahti5 ; Vectorlist for the 5th star # fcb -40,-10,100,10,-100,10,60,-20,0,20,-60,-20 tahti6 ; Vectorlist for the 6th star # fcb -40,-20,100,20,-100,20,60,-50,0,60,-60,-50 musa ; Silent music fdb $fee8,$fbe6 fcb $28,$08,$0,$80