home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒TWIST STUFF▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
- ; By Unreal / Surprise! Prods
- ; Example gfx by Tees / Surprise! Prods
- ; Published with Imphobia Diskmagazine
- ; Use it anyway You like
-
- doublesize equ 0 ; thing indicating whether to double pixels in X or not
- ; changed only before assemblation
- .MODEL LARGE
- .STACK
-
- CODE SEGMENT PUBLIC USE16 PARA 'CODE'
- MODEL LARGE
-
- ASSUME cs:CODE
- JUMPS
- .386C
-
- include inc.inc
- include iff
- memory dw 0
- xpoz dw 0
- starts dw 0
- ;══════════════════════════════════════════════════════════════════════════════
- Start: SetMode 13h
- setblock 64000/16
- alloc 64000/16,memory
- iff code,pictie,memory
- SineLp: mov xpoz,0
- call drawsine
- add starts,4
- cmp starts,360
- jle SineOk
- mov starts,0
- SineOk:
- call ramk
- waitesc SineLp
- call wait4key
- free memory
- SetMode 3
- Quit 0
-
- ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- Drawsine:
- mov ax,0a000h
- add ax,320*30/16
- mov es,ax
- mov ax,memory
-
- mov ds,ax
- mov cx,160
- mov dx,starts
- mov di,0
- mov si,0
- mov xpoz,si
- AtTune: mov bx,dx
- mov ax,word ptr cs:[sinie][bx]
- mov bx,ax
- add bx,512
- shr bx,3
- inc bx
- add bx,30
- ; tu jest wielkosc obecnej linii (vertical size)
- call Gummie
- add di,320
- add si,320
- add xpoz,320
- add dx,2
- cmp dx,360
- jl yetok
- mov dx,0
- yetok: uloop cx,attune
- ret
- ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
-
- Gummie: pusha
- ;bx=size
- ;di=screen offset
- mov ax,160
- sub ax,bx
- push ax
- mov ax,160
- mov dx,0
- div bx
- mov bp,ax
- mov ax,0
- div bx
- mov dx,ax
- ; bp:dx - add/adc
- ; bx is a counter
- mov cx,0
- mov ax,bp ;- x
- neg ax
- Bear: add cx,dx
- adc ax,bp
- mov si,xpoz
- add si,ax
- if doublesize eq 0
- movsb
- endif
-
- if doublesize eq 1
- push ax
- lodsb
- stosb
- stosb
- pop ax
- endif
- uloop bx,bear
- pop bx
- mov ax,160
- mov dx,0
- div bx
- mov bp,ax
- mov ax,0
- div bx
- mov dx,ax
- ; bp:dx - add/adc
- ; bx is a counter
- mov cx,0
- mov ax,bp ;- x
- neg ax
- Bear2: add cx,dx
- adc ax,bp
- mov si,xpoz
- add si,160
- add si,ax
- if doublesize eq 0
- movsb
- endif
-
- if doublesize eq 1
- push ax
- lodsb
- stosb
- stosb
- pop ax
- endif
-
- uloop bx,bear2
- popa
- ret
-
- pictie label
- include surprise.inc
- sinie label
- include sine.asm
- CODE ENDS
- End Start
-
-