; explosion seen when we're hit by enemy fire. ; currently just flashes the screen. the apple version is ; kinda funky-looking, best way I can describe it is that it ; looks like TV static. would be hard to imitate that on the ; atari. maybe there should be screen-shaking going on? ; original code was in C, and looked like: ;; for(i = 0; i < 3; i++) { ;; unsigned char color = PEEK(710) & 0xf0; ;; unsigned char textcolor = PEEK(709); ;; POKE(709,0); ;; POKE(710, color | 0x0c); ;; jsleep(10); ;; POKE(710, color & 0xf0); ;; jsleep(10); ;; POKE(709,textcolor); ;; } .export _explosion .include "atari.inc" .importzp tmp1, tmp2 .import _jsleep color1save = tmp1 color2save = tmp2 ; extern void explosion(void); _explosion: ; { ; save original colors (don't hardcode, they can be changed on the title screen) lda COLOR1 sta color1save lda COLOR2 sta color2save ; dark text lda #0 sta COLOR1 ldy #3 ; loop counter, counts 3 2 1 ; { @loop: lda color2save ora #$0c ; embrighten text background (without changing the hue) sta COLOR2 ldx #0 ;\ lda #$0a ; | jsleep(10); jsr _jsleep ;/ lda color2save ; put text bg back like it was... sta COLOR2 ldx #0 ; ...and jsleep(10) again lda #$0a jsr _jsleep dey bne @loop ; we're done if Y==0 ; } lda color1save ; restore text color sta COLOR1 rts ; }