home *** CD-ROM | disk | FTP | other *** search
- .286
- .Model small
- .data
- db 13, 10
- db "*-----------------------------------------------------------------*", 13, 10
- db "|Tittle: Interference Plasma |", 13, 10
- db "|Author: Heikki Vesalainen / Appellssiini |", 13, 10
- db "|Release date: 15th may 1994 |", 13, 10
- db "| |", 13, 10
- db "| This is greet-ware! You must send me greetings and credit me |", 13, 10
- db "| if you use this effect (or a similar one) in your production(s).|", 13, 10
- db "*-----------------------------------------------------------------*", 13, 10
- db 13, 10
-
- sarkas dw ? ;Sarkas is a counter.
- x dw ? ;This also
- y dw ? ;And this.
- plac equ 178
- adder equ 30
- adder2 equ 0
-
- include setpal.inc ;Setpal macro
- include pal.asm ;a palette
- include hsini.dat ;A large sin table
-
- .code
- start:
- mov ax, 0013h ;Video mode 13h
- int 10h
-
- setpal 256*3, palette ;set the palette of 3*256 values
-
- mov sarkas, plac ;The starting plase, try changing
-
- mov ax, @data ;Set ds to data
- mov ds, ax
-
- mov ax, 0a000h ;Set es to video
- mov es, ax
-
- framejump:
-
- xor di, di ;first pixel
-
- mov si, 200 ;n:o rows
-
- inc sarkas ;Next sarkas value
- mov bx, sarkas
-
- mov dl, sin[bx] ;This changes ones in a frame
-
- cmp sarkas, 359 ;Check for the boundary of sarkas
- jna rowjump ;if sarkas > 359, then
- mov sarkas, 0 ;sarkas = 0
-
- rowjump:
- mov cx, 320 ;pixels / row
-
- mov bx, sarkas
- mov ah, sin[si+adder2] ;These change ones every row
- mov dh, sin[bx+si+adder2]
-
- pixeljump:
-
- mov bx, cx
- mov al, sin[bx+adder] ;These change for every pixel
- add bx, sarkas
- add al, sin[bx+adder]
-
- add al, ah
- xor al, dh ;This is it! XOR or OR
- sub al, dl
-
- mov byte ptr es:[di], al
-
- inc di ;next pixel
-
- dec cx
- jnz pixeljump
-
- in al, 60h ;esc?
- cmp al, 1
- jz dos
-
- dec si ;next row
- jnz rowjump
-
- jmp framejump
-
- dos:
- mov ax, 0003h ;Normal Video
- int 10h
-
- push cs
- pop ds
- mov dx, offset c
- mov ah, 9
- int 21h
-
- xor al, al ;Flush the Keyboard buffer
- mov ah, 0Ch
- int 21h
-
-
- mov ax, 4c00h ;And out!
- int 21h
-
- c db 13, 10
- db " ", 13, 10
- db "An Appellssiini Production ", 13, 10
- db " ", 13, 10
- db "Code and effect by Heikki Vesalainen ", 13, 10
- db " ", 13, 10
- db "Greetings go to Orange dudes ", 13, 10
- db "and to everyone else out there! ", 13, 10
- db " ", 13, 10, "$"
-
-
- .stack
-
- END start
-
-