;code by unic0rn/Asm Force org 100h segment .code mov al,13h int 10h xor ax,ax mov dx,03C8h out dx,al inc dx mov cl,0FFh pal: mov al,0FFh sub al,cl cmp al,40h jc skip mov al,3Fh skip: out dx,al mov al,0FFh sub al,cl shr al,1 cmp al,40h jc skip2 mov al,3Fh skip2: out dx,al xor al,al out dx,al loop pal burn: push 8000h pop ds push ds pop es mov ch,2 mov di,320*198 spark: xor dl,dh add dh,42 ror dl,1 xor dh,dl mov ax,dx stosw loop spark not cx xor di,di flame: movzx ax,byte [di] mov bl,[di+319] add ax,bx mov bl,[di+640] add ax,bx mov bl,[di+321] add ax,bx shr ax,2 dec al jne cont inc al cont: stosb loop flame std mov si,di push 0A000h pop es not cx rep movsb cld in al,60h dec al jnz burn ret db ''