JMP Mario : JMP Mario : JMP Mario : JMP Return : JMP Return : JMP Return : JMP Return LDA $15 AND $04 BEQ DeleteBlk RTL DeleteBlk: LDA #$02 STA $9C JSL $00BEB0 JSR GenSmoke LDA #$1E STA $1DF9 RTL ;================================================================== ;Generate Smoke Subroutine ;JSR to DrawSmoke to generate smoke at the sprite's position. ;================================================================== GenSmoke: LDY #$03 ; \ find a free slot to display effect FINDFREE: LDA $17C0,y ; | BEQ FOUNDONE ; | DEY ; | BPL FINDFREE ; | RTS ; / return if no slots open FOUNDONE: LDA #$01 ; \ set effect graphic to smoke graphic STA $17C0,y ; / LDA #$1F ; \ time to show smoke. STA $17CC,y ; / LDA $D8,x ; \ smoke y position = generator y position STA $17C4,y ; / LDA $E4,x ; \ load generator x position and store it for later STA $17C8,y ; / RTS