//------------------------------- // Snakes of Atari Island // // Author: Jakub "JKR" Krzak // Katowice, April 2012 //------------------------------- ; Sound effects array .array _arrSFX .byte $FF 11, 29, $FF 11, 11, 11, 29, $FF 25, 25, 27, 29, $FF 10, 8, 7, 5, 6, 3, $FF 3, 6, 5, 7, 8, 10, $FF .enda VBI_Proc .proc jsr CMCplayer_tact mvza vcnt inc tmrBase lda tmrBase cmp #50 jne l1 mvza tmrBase inc clckSeconds lda clckSeconds cmp #60 jne l1 lda clckMinutes cmp #254 jne l0 dec clckSeconds jne l1 l0 mvza clckSeconds inc clckMinutes l1 inc tmrDisplMsgs sne inc tmrDisplMsgs +1 lda _msgFlags and #(cMsgUp_Change + cMsgDown_Change + cMsgUp_Blink + cMsgDown_Blink) jeq l6 inc _tmrMsg lda _tmrMsg cmp #2 jcc l11 ; if _tmrMsg < 2 ; Upper Message checkFlag _msgFlags (cMsgUp_Change + cMsgUp_Blink) jcc l5 checkFlag _msgFlags cMsgUp_SH jcs l3 #if .byte _msgBrUpper = #0 checkFlag _msgFlags cMsgUp_Change jcc l4 ;for i:2..39 _scr(i, 0) = _msg2(i) ldx #2 l2 lda _msg2, x sta _scr, x inx cpx #40 bne l2 l4 setFlag _msgFlags cMsgUp_SH #else dec _msgBrUpper #end jmp l5 l3 #if .byte _msgBrUpper = #cMaxMsgBrtnss clearFlag _msgFlags (cMsgUp_Change + cMsgUp_SH) #else inc _msgBrUpper #end l5 ; Lower message checkFlag _msgFlags (cMsgDown_Change + cMsgDown_Blink) jcc l6 checkFlag _msgFlags cMsgDown_SH jcs l7 #if .byte _msgBrLower = #0 checkFlag _msgFlags cMsgDown_Change jcc l8 #if .byte _msg = #28 ; '<' mva #$12 DLScrllLine mva #$12 DLScrllLine2 ;for i:0..39 _scr(i, 24) = _msg(i + 1) ldx #0 l9 lda _msg+1, x sta _scrL24, x inx cpx #40 bne l9 #else mva #$02 DLScrllLine mva #$02 DLScrllLine2 ;for i:0..39 _scr(i, 24) = _msg(i) ldx #0 l10 lda _msg, x sta _scrL24, x inx cpx #40 bne l10 #end l8 setFlag _msgFlags cMsgDown_SH #else dec _msgBrLower #end jmp l6 l7 #if .byte _msgBrLower = #cMaxMsgBrtnss clearFlag _msgFlags (cMsgDown_Change + cMsgDown_SH) #else inc _msgBrLower #end l6 mvza _tmrMsg l11 ldx _sfx_ptr #if .byte _arrSFX,x <> #255 #if .byte _sfx_tmr = #0 #if .byte _mute = #0 ldx _sfx_ptr lda _arrSFX,x tax ; note lda #1 ; chanel ldy #2 ; instrument jsr CMC_PlayNote #end inc _sfx_ptr mva #5 _sfx_tmr #else dec _sfx_tmr #end #end jmp $e462 .endp