level 7
.MODEL TINY.586.DATA fAngle dd -2000.0 fStep dd 0.0175 fCorrector dd 157.0796327 Msg db " TanTeFrieDa\BrainWanK",0dh,0ah,"<-www.Brainwank.de->$" wRadius dw ? wCount dw ? dwX dw ? dwY dw ? Buffer db 320*200 DUP (?) dwTmp dw ?.CODEORG 100hStart: moval,0013h int10h; finit; you will need to init under pure dos,; winbloze won飔 need it les
bp
,[bx] movdx,3c9h; xorax,ax; my GF3 Ti-200 doesn飔 need; outdx,al; to init the color-dac; incdx; decclPal: movax,cx notax shrax,2 outdx,al outdx,al outdx,al loopPalMainLoop: movcx,36000/4Circle: movsi,OFFSET wRadius movWORD PTR [si],50 movdx,cx shrdx,3 sub[si],dx; SI = OFFSET wRadius fld[fAngle] fldST(0) fldST(0) fsin fimulWORD PTR [si]; SI = OFFSET wRadius fistp[dwX] fcos fimulWORD PTR [si]; SI = OFFSET wRadius fistp[dwY] fadd[fStep] fstp[fAngle] add[dwX],160 add[dwY],100 movax,320 mul[dwY] addax,[dwX] cmpah,0fah jaOut_Of_Sight xchgax,bx movdx,[si]; SI = OFFSET wRadius mov[Buffer+bx],dlOut_Of_Sight: loopCircle fld[fAngle] fsub[fCorrector] fstp[fAngle] callSmooth callSmooth callSmooth movsi,OFFSET Buffer xordi,di movch,7dh repmovsw inal,60h decal jnzMainLoop movax,0003h int10h movah,9 movdx,OFFSET Msg int21h retSmooth PROC xorbx,bx mulbx; AX*0 = 0 -> DX = 0,AX = 0; xorcx,cx; is still Zero from loop; xordx,dx; clear it tricky :) movsi,320*198@Smooth_Loop: xorax,ax moval,[Buffer+si
+3
20] movbl,[Buffer+si-320] movcl,[Buffer+si+1] movdl,[Buffer+si-1] addax,bx addax,cx addax,dx shrax,2 decax mov[Buffer+si],al decsi jnz@Smooth_Loop retSmooth ENDPEND Start
2008年05月01日 13点05分