Mixér by Řrřola [web]
; /\\ \ //\//\ MIXER ;/\ \\ \// // / a 128B intro ;\ \ \\/\\/ \/\ by Rrrola ; \ \ \\ \\// / <rrrola@gmail.com> ; greets to everyone who enjoys watching cutting-edge effects org 100h ; assume ah=0 cl=0xff dx=cs bp=0x9?? si=256 di=-2 mov al,13h ; Init int 10h ; MCGA video mode add dh,al ; ds = cs+0x1300 (needs 141kB) mov ds,dx push 0a000h ; es = 0xA000 pop es mov word[bp+si+3],3838h ; dt = 0x3838???? = (float)4.4e-5 ;@mov word[bp+si+3],3939h ;#mov word[bp+si+3],3737h mov dx,3c8h ; Palette mov cx,2000h ;@mov ch,2 P shrd ax,cx,19 neg al ;@imul ax,cx,3FC0h/3 ;@mov al,ah out dx,al mov dl,0c9h loop P M mov bx,321 ; Gaussian blur G std B lodsb ; 1 2 1 add [bx+si],al ; 2 4 2 / 16 rcr byte[bx+si],1 ; 1 2 1 loop B neg bx cld js B ; +/- pass shr bx,7 jnz G ; vertical/horizontal pass C mov ch,80h ; Screen copy rep movsw ;#lodsb ;#mov bx,si ;#add al,[bx+si-2] ;#rcr al,1 ;#mov [si-1],al ;#add al,58 ;#stosb ;#loop C mov ax,-24 ; Spiral ;@mov ax,-12 ;#mov ax,-32 S mov [bp+di],ax ; [bp+di]: cpu<>fpu fninit fld dword[bp+si] fadd dword[bp+si+1] fst dword[bp+si] ; t += dt fimul word[bp+di] fsincos ; {sin(a*t) cos(a*t)} ;@mov byte[bp+di],-32 fidiv word[bp+di] fxch st1 fidiv word[bp+di] fldz fldz ; {y=0 x=0 dy=cos(a*t)/a dx=sin(a*t)/a} mov ch,9 ; DDA line ;@mov ch,12 ;#mov ch,26 L fist word[bp+di] fadd st2 fxch st1 imul bx,[bp+di],320 fist word[bp+di] fadd st3 fxch st1 ; {y+=dy x+=dx dy dx} add bx,[bp+di] ; A = ((int)y+100)*320 + (int)x+160 + si-di sub [bx+32418],ah adc [bx+32418],ah ; if ([A] < 255-ah) [A]++ ;@sub [bx+32418],al ;@adc [bx+32418],al loop L inc ax jnz S in al,60h ; Keycheck dec ax jnz M int 10h ; text mode 0 ret
[ back to the prod ]