From: Shawn Jefferson (sjefferson_at_sd62.bc.ca)
Date: 2003-05-09 20:30:18
Hi, I'm trying to write a VBI routine for the atari and for some reason it doesn't seem to be working. Here it is: .export _init_vbi, _alienptr .import _aliens .include "atari.inc" _init_vbi: lda #7 ; deferred vblank ldx #>vbi ; hi address of vbi routine ldy #<vbi ; lo address of vbi routine jsr SETVBV ; jump to os set vblank routine rts vbi: lda _charset ; charset flag beq cs0 lda #$E0 ; charset1 sta CHBAS lda #0 ; change flag sta _charset jmp cont cs0: lda #$CC ; charset0 sta CHBAS lda #1 ; change flag sta _charset cont: lda <_aliens ; lo byte of aliens array sta _alienptr lda >_aliens ; hi byte of aliens array sta _alienptr+1 ldx #10 ; 10 aliens loop: ldy #1 lda (_alienptr),y sec sbc #1 ; nextmove-- sta (_alienptr),y nexta: dex ; next alien beq exitvbi clc lda _alienptr ; increment alienptr to next record adc #12 bcc inclo inc _alienptr+1 inclo: sta _alienptr jmp loop exitvbi: jmp XITVBV .zeropage _charset: .byte 0 _alienptr: .word 0 The rountine is being set as the VBI vector, since I can see the charsets rotating on screen. In the second half I am trying to loop through an array of 10 structures, decrementing one of the fields each time. For some reason it isn't doing this... see anything wrong here? The structures are 12 bytes long and _aliens the array of structs. I did have a check to see if (_alienptr),1 was zero and if so decrement it, but I removed it just to eliminate that as a problem. Thanks, Shawn Jefferson ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo_at_musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-05-09 20:33:44 CEST