WAITRECAL equ $f192 ; wait for refresh timer timeout, then restart, recalibrate, calls reset0ref INTENSI5F equ $f2a5 ; set intensity to 5F (95) RESET0REF equ $f354 ; zeros the integrators, and resets the pen back to the origin CLEARC8RAM equ $f542 ; clears memory $C800-$C8FF PRINTSTR equ $f37a ; prints a string (up to an 0x80), using default height/width, in $C82A, and pen position in D VECTXTH equ $c82a ; text height VECTXTW equ $c82b ; text width ; ### Variables indeksi equ $c881 ; A variable for location time equ $c882 ; A variable for time isoa equ $c883 ; A variable for time ; ### The basic init block org 0 fcb $67,$20 fcc "GCE " ; just the GCE text fcb $80 fdb musa,$f850,$30b8 ; quiet music fcb $80,$0 jsr CLEARC8RAM jsr INTENSI5F clra ; Reset time sta indeksi ; and index sta time ; just to make sure. lda #-3 ; height ldb #42 ; width sta VECTXTH stb VECTXTW ; ### Actual program skrolli jsr WAITRECAL jsr RESET0REF lda indeksi asla ; Double the A to get a word. sta isoa ldx #table lda #0 ldb #0 ldu isoa,x jsr PRINTSTR inc time ; Increase time by 1. lda time ; Check what time is now. cmpa #40 ; If it's not 40, then bne skrolli ; loop, 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 skrolli ; jump back to start. ; (There's 6 frames 0-5) clra ; But if it is 6, then sta indeksi ; reset it bra skrolli ; jump back to start. table fcw a1t,a1i,a1s,a1s,a1i a1a fcc "A" a1b fcc "B" a1c fcc "C" a1d fcc "D" a1e fcc "E" a1i fcc "I" a1s fcc "S" a1t fcc "T" musa dw $0000,$0000 db $00,$80