2011-01-29 20:26:09 +01:00
|
|
|
|
|
|
|
|
|
;
|
|
|
|
|
; Compile with flat assembler
|
|
|
|
|
; <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ந<EFBFBD><E0AEA8>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
; <20><><EFBFBD>ࠡ<EFBFBD>⠫: <20><><EFBFBD><EFBFBD><EFBFBD> :)
|
|
|
|
|
|
|
|
|
|
use32
|
|
|
|
|
|
|
|
|
|
org 0x0
|
|
|
|
|
|
|
|
|
|
db 'MENUET01' ; 8 byte id
|
|
|
|
|
dd 0x01 ; header version
|
|
|
|
|
dd START ; start of code
|
|
|
|
|
dd I_END ; size of image
|
|
|
|
|
dd 0x25000 ; memory for app
|
|
|
|
|
dd 0x20000 ; esp
|
|
|
|
|
dd playlist, 0x0
|
|
|
|
|
|
2011-01-29 20:32:34 +01:00
|
|
|
|
include '../../../macros.inc'
|
2011-01-29 20:26:09 +01:00
|
|
|
|
|
|
|
|
|
START: ; start of execution
|
2011-10-15 03:00:12 +02:00
|
|
|
|
cmp [playlist],0x00000000
|
|
|
|
|
jne dprod
|
|
|
|
|
mcall -1
|
|
|
|
|
dprod:
|
2011-01-29 20:26:09 +01:00
|
|
|
|
or [trig_sys],40h
|
|
|
|
|
call scandr
|
|
|
|
|
jmp mmm.seach
|
|
|
|
|
still:
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
or [trig_sys],400h
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
or [trig_sys],200h
|
|
|
|
|
call enproc
|
|
|
|
|
call delproc
|
|
|
|
|
mov eax,23 ; wait here for event
|
|
|
|
|
mov ebx,20
|
|
|
|
|
mcall
|
|
|
|
|
cmp eax,1 ; redraw request ?
|
|
|
|
|
je red
|
|
|
|
|
cmp eax,3 ; button in buffer ?
|
|
|
|
|
je button
|
|
|
|
|
test [trig_sys],200h
|
|
|
|
|
jz next_song
|
|
|
|
|
jmp still
|
|
|
|
|
next_song:
|
|
|
|
|
add [poz_butt],1
|
|
|
|
|
movzx eax,[poz_song]
|
|
|
|
|
add eax,1
|
|
|
|
|
mov [poz_song],al
|
|
|
|
|
mov dx,255
|
|
|
|
|
mul dx
|
|
|
|
|
mov [song_poz], eax
|
|
|
|
|
movzx eax,[poz_song]
|
|
|
|
|
sub eax,1
|
|
|
|
|
cmp [song_count],eax
|
|
|
|
|
ja .dgo
|
|
|
|
|
mov [poz_song],1
|
|
|
|
|
mov [song_poz],255
|
|
|
|
|
mov [poz_butt],6
|
|
|
|
|
.dgo:
|
|
|
|
|
call load_song
|
|
|
|
|
call procskan
|
|
|
|
|
call start
|
|
|
|
|
or [trig_sys],200h
|
|
|
|
|
call draw_window
|
|
|
|
|
jmp still
|
|
|
|
|
red:
|
|
|
|
|
call draw_window
|
|
|
|
|
jmp still
|
|
|
|
|
button: ; button
|
|
|
|
|
mov eax,17
|
|
|
|
|
mcall
|
|
|
|
|
cmp ah,1
|
|
|
|
|
je close
|
|
|
|
|
cmp ah,2
|
|
|
|
|
je mmm
|
|
|
|
|
cmp ah,3
|
|
|
|
|
je mma
|
|
|
|
|
cmp ah,4
|
|
|
|
|
je mmd
|
|
|
|
|
cmp ah,5
|
|
|
|
|
je mmf
|
|
|
|
|
cmp ah,38
|
|
|
|
|
jb mma
|
|
|
|
|
ret
|
|
|
|
|
close:
|
|
|
|
|
mov eax,-1
|
|
|
|
|
mcall
|
|
|
|
|
mma:
|
|
|
|
|
mov [poz_butt],ah
|
|
|
|
|
mov [poz_song],ah
|
|
|
|
|
sub [poz_song],5
|
|
|
|
|
movzx eax,[poz_song]
|
|
|
|
|
add eax,[sme]
|
|
|
|
|
mov [poz_song],al
|
|
|
|
|
mov dx,255
|
|
|
|
|
mul dx
|
|
|
|
|
mov [song_poz], eax
|
|
|
|
|
call load_song
|
|
|
|
|
call procskan
|
|
|
|
|
call start
|
|
|
|
|
or [trig_sys],200h
|
|
|
|
|
call draw_window
|
|
|
|
|
jmp still
|
|
|
|
|
mmw:
|
|
|
|
|
mov ebx,file_info2
|
|
|
|
|
mov ecx,[razm_str]
|
|
|
|
|
add dword [ebx+4],ecx
|
|
|
|
|
or [trig_sys],40h
|
|
|
|
|
jmp mmm.seach
|
|
|
|
|
ret
|
|
|
|
|
mmm:
|
|
|
|
|
.seach:
|
|
|
|
|
call getstring
|
|
|
|
|
call get_drive
|
|
|
|
|
call put_db
|
|
|
|
|
call draw_window
|
|
|
|
|
test [trig_sys],04h
|
|
|
|
|
jz mmw
|
|
|
|
|
jmp still
|
|
|
|
|
mmd:
|
|
|
|
|
cmp [poz_db3],510
|
|
|
|
|
jb .emd
|
|
|
|
|
sub [poz_db3],255
|
|
|
|
|
add [poz_butt],1
|
|
|
|
|
sub [sme],1
|
|
|
|
|
.emd:
|
|
|
|
|
call draw_window
|
|
|
|
|
jmp still
|
|
|
|
|
mmf:
|
|
|
|
|
add [poz_db3],255
|
|
|
|
|
sub [poz_butt],1
|
|
|
|
|
add [sme],1
|
|
|
|
|
call draw_window
|
|
|
|
|
jmp still
|
|
|
|
|
procskan:
|
|
|
|
|
mov [num_proc],255
|
|
|
|
|
qqqqq:
|
|
|
|
|
mov eax,9
|
|
|
|
|
mov ebx,pib
|
|
|
|
|
mov ecx, [num_proc]
|
|
|
|
|
mcall
|
|
|
|
|
cld
|
|
|
|
|
lea si,[pib.process_name]
|
|
|
|
|
lea di,[minus]
|
|
|
|
|
mov cx,7
|
|
|
|
|
rep cmps byte [si],[di]
|
|
|
|
|
jcxz mat
|
|
|
|
|
sub [num_proc],1
|
|
|
|
|
cmp [num_proc],1
|
|
|
|
|
jne qqqqq
|
|
|
|
|
ret
|
|
|
|
|
mat:
|
|
|
|
|
mov eax,18
|
|
|
|
|
mov ebx,2
|
|
|
|
|
mov ecx,[num_proc]
|
|
|
|
|
mcall
|
|
|
|
|
jmp procskan
|
|
|
|
|
scandr:
|
|
|
|
|
mov eax,18
|
|
|
|
|
mov ebx,11
|
|
|
|
|
mov ecx,1
|
|
|
|
|
mov edx,scan_rez
|
|
|
|
|
mcall
|
|
|
|
|
ret
|
|
|
|
|
mountpl:
|
|
|
|
|
mov cx,255
|
|
|
|
|
cld
|
|
|
|
|
lea di,[fl]
|
|
|
|
|
mov al,00h
|
|
|
|
|
repne stos byte [di]
|
|
|
|
|
cld
|
|
|
|
|
mov cx,6
|
|
|
|
|
lea si,[play_list]
|
|
|
|
|
lea di,[fl]
|
|
|
|
|
rep movs byte [di],[si]
|
|
|
|
|
mov cx,0
|
|
|
|
|
ret
|
|
|
|
|
get_drive:
|
|
|
|
|
mov al,byte[scan_rez+1]
|
|
|
|
|
mov [my_draw],al
|
|
|
|
|
mov [ns],48
|
|
|
|
|
cmp [my_draw],0
|
|
|
|
|
jne .c0
|
|
|
|
|
or [trig_sys],01h
|
|
|
|
|
.c0:
|
|
|
|
|
cmp [my_draw],0x80
|
|
|
|
|
jb .h0
|
|
|
|
|
sub [my_draw],0x80
|
|
|
|
|
mov [n_razd],1
|
|
|
|
|
mov [nd],49
|
|
|
|
|
mov al,[cd_0]
|
|
|
|
|
mov [td],al
|
|
|
|
|
call folscan
|
|
|
|
|
.h0:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je ex1
|
|
|
|
|
cmp [my_draw],0x40
|
|
|
|
|
jb .c1
|
|
|
|
|
sub [my_draw],0x40
|
|
|
|
|
mov al,byte[scan_rez+2]
|
|
|
|
|
mov [n_razd],al
|
|
|
|
|
add al,48
|
|
|
|
|
mov [nd],al
|
|
|
|
|
mov al,[hd_0]
|
|
|
|
|
mov [td],al
|
|
|
|
|
call folscan
|
|
|
|
|
.c1:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je ex1
|
|
|
|
|
cmp [my_draw],0x20
|
|
|
|
|
jb .h1
|
|
|
|
|
sub [my_draw],0x20
|
|
|
|
|
mov [n_razd],1
|
|
|
|
|
mov [nd],49
|
|
|
|
|
mov al,[cd_0]
|
|
|
|
|
mov [ns],19
|
|
|
|
|
call folscan
|
|
|
|
|
.h1:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je ex1
|
|
|
|
|
cmp [my_draw],0x10
|
|
|
|
|
jb .c2
|
|
|
|
|
sub [my_draw],0x10
|
|
|
|
|
mov al,byte[scan_rez+3]
|
|
|
|
|
mov [n_razd],al
|
|
|
|
|
add al,48
|
|
|
|
|
mov [nd],al
|
|
|
|
|
mov al,[hd_0]
|
|
|
|
|
mov [td],al
|
|
|
|
|
mov [ns],49
|
|
|
|
|
call folscan
|
|
|
|
|
.c2:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je ex1
|
|
|
|
|
cmp [my_draw],0x08
|
|
|
|
|
jb .h2
|
|
|
|
|
sub [my_draw],0x08
|
|
|
|
|
mov [n_razd],1
|
|
|
|
|
mov [nd],49
|
|
|
|
|
mov al,[cd_0]
|
|
|
|
|
mov [td],al
|
|
|
|
|
mov [ns],50
|
|
|
|
|
call folscan
|
|
|
|
|
.h2:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je ex1
|
|
|
|
|
cmp [my_draw],0x04
|
|
|
|
|
jb .c3
|
|
|
|
|
sub [my_draw],0x04
|
|
|
|
|
mov al,byte[scan_rez+4]
|
|
|
|
|
mov [n_razd],al
|
|
|
|
|
add al,48
|
|
|
|
|
mov [nd],al
|
|
|
|
|
mov al,[hd_0]
|
|
|
|
|
mov [td],al
|
|
|
|
|
mov [ns],50
|
|
|
|
|
call folscan
|
|
|
|
|
.c3:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je ex1
|
|
|
|
|
cmp [my_draw],0x02
|
|
|
|
|
jb .h3
|
|
|
|
|
sub [my_draw],0x02
|
|
|
|
|
mov [n_razd],1
|
|
|
|
|
mov [nd],49
|
|
|
|
|
mov al,[cd_0]
|
|
|
|
|
mov [td],al
|
|
|
|
|
mov [ns],51
|
|
|
|
|
call folscan
|
|
|
|
|
.h3:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je ex1
|
|
|
|
|
cmp [my_draw],0x01
|
|
|
|
|
jb ex1
|
|
|
|
|
sub [my_draw],0x01
|
|
|
|
|
mov al,byte[scan_rez+5]
|
|
|
|
|
mov [n_razd],al
|
|
|
|
|
add al,48
|
|
|
|
|
mov [nd],al
|
|
|
|
|
mov al,[hd_0]
|
|
|
|
|
mov [td],al
|
|
|
|
|
mov [ns],51
|
|
|
|
|
call folscan
|
|
|
|
|
ex1:
|
|
|
|
|
cmp [fold],05h
|
|
|
|
|
jne ext2
|
|
|
|
|
or [trig_sys],04h
|
|
|
|
|
ext2:
|
|
|
|
|
cmp [fold],0Ah
|
|
|
|
|
jne ext3
|
|
|
|
|
or [trig_sys],08h
|
|
|
|
|
jmp eext
|
|
|
|
|
ext3:
|
|
|
|
|
mov [trig_scan],0
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
or [trig_sys],0Eh
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
eext:
|
|
|
|
|
ret
|
|
|
|
|
folscan:
|
|
|
|
|
cmp [trig_scan],1
|
|
|
|
|
je .out2
|
|
|
|
|
mov eax,70
|
|
|
|
|
mov ebx,file_info
|
|
|
|
|
mcall
|
|
|
|
|
mov [fold],eax
|
|
|
|
|
cmp [fold],0
|
|
|
|
|
jne .out
|
|
|
|
|
mov al,1
|
|
|
|
|
mov [trig_scan],al
|
|
|
|
|
jmp .out2
|
|
|
|
|
.out:
|
|
|
|
|
mov al,1
|
|
|
|
|
sub [n_razd],al
|
|
|
|
|
mov al,1
|
|
|
|
|
sub [nd],al
|
|
|
|
|
cmp [n_razd],0
|
|
|
|
|
jne folscan
|
|
|
|
|
.out2:
|
|
|
|
|
ret
|
|
|
|
|
get_play:
|
|
|
|
|
mov cx,255
|
|
|
|
|
lea si,[floc]
|
|
|
|
|
lea di,[playlist]
|
|
|
|
|
rep movs byte [di],[si]
|
|
|
|
|
mov cx,0
|
|
|
|
|
ret
|
|
|
|
|
getstring:
|
|
|
|
|
mov eax,70
|
|
|
|
|
mov ebx,file_info2
|
|
|
|
|
mov dword [ebx+12], 255
|
|
|
|
|
mov dword [ebx+16],string1
|
|
|
|
|
mov dword [ebx+21],playlist
|
|
|
|
|
mcall
|
|
|
|
|
cmp eax,6
|
|
|
|
|
jne .pro
|
|
|
|
|
or [trig_sys],04h
|
|
|
|
|
call draw_window
|
|
|
|
|
jmp still
|
|
|
|
|
.pro:
|
|
|
|
|
|
|
|
|
|
cmp ebx,0xFFFFFFFF
|
|
|
|
|
je .exit
|
|
|
|
|
call rus_m
|
|
|
|
|
cld
|
|
|
|
|
lea di,[string1]
|
|
|
|
|
mov cx,255
|
|
|
|
|
mov al,0ah
|
|
|
|
|
repne scas byte [es:di]
|
|
|
|
|
je .calc
|
|
|
|
|
mov [razm_str],0
|
|
|
|
|
mov ebx,file_info2
|
|
|
|
|
add dword [ebx+4], 255
|
|
|
|
|
or [trig_sys],40h
|
|
|
|
|
jmp mmm.seach
|
|
|
|
|
.calc:
|
|
|
|
|
mov [razm_str],255
|
|
|
|
|
sub [razm_str],ecx
|
|
|
|
|
.kon:
|
|
|
|
|
mov [razm_path],0
|
|
|
|
|
cld
|
|
|
|
|
lea di,[string1]
|
|
|
|
|
mov ecx,0
|
|
|
|
|
.ppr:
|
|
|
|
|
cmp byte [es:di],70h
|
|
|
|
|
je .s1
|
|
|
|
|
cmp byte [es:di],50h
|
|
|
|
|
je .s1
|
|
|
|
|
add ecx,1
|
|
|
|
|
add di,1
|
|
|
|
|
cmp ecx,[razm_str]
|
|
|
|
|
jb .ppr
|
|
|
|
|
jmp .next
|
|
|
|
|
.s1:
|
|
|
|
|
add di,1
|
|
|
|
|
cmp byte [es:di],33h
|
|
|
|
|
je .s2
|
|
|
|
|
sub di,1
|
|
|
|
|
jmp .next
|
|
|
|
|
ret
|
|
|
|
|
.s2:
|
|
|
|
|
|
|
|
|
|
or [trig_sys],80h
|
|
|
|
|
mov [razm_path],ecx
|
|
|
|
|
add [razm_path],2
|
|
|
|
|
|
|
|
|
|
; mov [ss2],0
|
|
|
|
|
cld
|
|
|
|
|
lea di,[string1]
|
|
|
|
|
mov cx,0
|
|
|
|
|
mov [zzz],cx
|
|
|
|
|
.ppre:
|
|
|
|
|
cmp byte [es:di],3Ah
|
|
|
|
|
je .se1
|
|
|
|
|
add cx,1
|
|
|
|
|
add di,1
|
|
|
|
|
cmp ecx,[razm_path]
|
|
|
|
|
jne .ppre
|
|
|
|
|
jmp .mount
|
|
|
|
|
.se1:
|
|
|
|
|
add di,1
|
|
|
|
|
cmp byte [es:di],5Ch
|
|
|
|
|
je .se2
|
|
|
|
|
sub di,1
|
|
|
|
|
jmp .mount
|
|
|
|
|
.se2:
|
|
|
|
|
cmp ecx,250
|
|
|
|
|
jb .se3
|
|
|
|
|
mov ecx,0
|
|
|
|
|
.se3:
|
|
|
|
|
add cx,2
|
|
|
|
|
; mov [ss2],cx
|
|
|
|
|
mov [zzz],cx
|
|
|
|
|
.mount:
|
|
|
|
|
movzx ecx,[zzz]
|
|
|
|
|
cmp ecx, [razm_path]
|
|
|
|
|
jb .mount1
|
|
|
|
|
or [trig_sys],04h
|
|
|
|
|
jmp still
|
|
|
|
|
.mount1:
|
|
|
|
|
mov ecx,255
|
|
|
|
|
cld
|
|
|
|
|
lea di,[fl]
|
|
|
|
|
mov al,00h
|
|
|
|
|
repne stos byte [di]
|
|
|
|
|
cld
|
|
|
|
|
mov ecx,[razm_path]
|
|
|
|
|
sub cx,[zzz]
|
|
|
|
|
lea si,[string1]
|
|
|
|
|
add si,[zzz]
|
|
|
|
|
lea di,[fl]
|
|
|
|
|
rep movs byte [di],[si]
|
|
|
|
|
mov ecx,0
|
|
|
|
|
.sl_m:
|
|
|
|
|
mov ecx,0
|
|
|
|
|
lea di,[fl]
|
|
|
|
|
.cikl_mx:
|
|
|
|
|
mov al,byte[di]
|
|
|
|
|
mov [char_con],al
|
|
|
|
|
cmp al,5Ch
|
|
|
|
|
je .con_sl
|
|
|
|
|
jmp .ext6
|
|
|
|
|
.con_sl:
|
|
|
|
|
mov al,2Fh
|
|
|
|
|
.ext6:
|
|
|
|
|
stos byte [di]
|
|
|
|
|
add ecx,1
|
|
|
|
|
cmp ecx,[razm_path]
|
|
|
|
|
jb .cikl_mx
|
|
|
|
|
|
|
|
|
|
.exit:
|
|
|
|
|
ret
|
|
|
|
|
.next:
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
or [trig_sys],80h
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
mov ebx,file_info2
|
|
|
|
|
mov ecx,[razm_str]
|
|
|
|
|
add dword [ebx+4],ecx
|
|
|
|
|
or [trig_sys],40h
|
|
|
|
|
jmp mmm.seach
|
|
|
|
|
rus_m:
|
|
|
|
|
test [trig_sys],40h
|
|
|
|
|
jnz ddff
|
|
|
|
|
ret
|
|
|
|
|
ddff:
|
|
|
|
|
mov ecx,0
|
|
|
|
|
lea di,[string1]
|
|
|
|
|
cicl_m:
|
|
|
|
|
mov al,byte[di]
|
|
|
|
|
mov [char_con],al
|
|
|
|
|
shr al,4
|
|
|
|
|
cmp al,0Eh
|
|
|
|
|
je min_sor
|
|
|
|
|
cmp al,0Ch
|
|
|
|
|
je min_sor
|
|
|
|
|
cmp al,0Dh
|
|
|
|
|
je min_sor
|
|
|
|
|
cmp al,0Fh
|
|
|
|
|
je min_des
|
|
|
|
|
shl al,4
|
|
|
|
|
mov al,0
|
|
|
|
|
jmp ext5
|
|
|
|
|
min_sor:
|
|
|
|
|
sub [char_con],40h
|
|
|
|
|
jmp ext5
|
|
|
|
|
min_des:
|
|
|
|
|
sub [char_con],10h
|
|
|
|
|
jmp ext5
|
|
|
|
|
ext5:
|
|
|
|
|
mov al,[char_con]
|
|
|
|
|
stos byte [di]
|
|
|
|
|
add ecx,1
|
|
|
|
|
cmp ecx,255
|
|
|
|
|
jb cicl_m
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
or [trig_sys],40h
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
put_db:
|
|
|
|
|
test [trig_sys],80h
|
|
|
|
|
jz .exit
|
|
|
|
|
add [song_count],1
|
|
|
|
|
add [poz_db],255
|
|
|
|
|
mov ecx,255
|
|
|
|
|
cld
|
|
|
|
|
mov ebx,[poz_db]
|
|
|
|
|
lea di,[memlist+ebx]
|
|
|
|
|
mov al,00h
|
|
|
|
|
repne stos byte [di]
|
|
|
|
|
cld
|
|
|
|
|
mov ecx,255
|
|
|
|
|
lea si,[floc]
|
|
|
|
|
mov ebx,[poz_db]
|
|
|
|
|
lea di,[memlist+ebx]
|
|
|
|
|
rep movs byte [di],[si]
|
|
|
|
|
mov ecx,0
|
|
|
|
|
.exit:
|
|
|
|
|
ret
|
|
|
|
|
load_song:
|
|
|
|
|
cld
|
|
|
|
|
mov ecx,255
|
|
|
|
|
lea di,[song_path]
|
|
|
|
|
mov ebx,[song_poz]
|
|
|
|
|
lea si,[memlist+ebx]
|
|
|
|
|
rep movs byte [di],[si]
|
|
|
|
|
mov ecx,0
|
|
|
|
|
ret
|
|
|
|
|
start:
|
|
|
|
|
mov eax,70
|
|
|
|
|
mov ebx,folder_inf
|
|
|
|
|
mcall
|
|
|
|
|
ret
|
|
|
|
|
delproc:
|
|
|
|
|
test [trig_sys],400h
|
|
|
|
|
jnz .sdf
|
|
|
|
|
ret
|
|
|
|
|
.sdf:
|
|
|
|
|
mov [num_proc],255
|
|
|
|
|
.fgf:
|
|
|
|
|
mov eax,9
|
|
|
|
|
mov ebx,pib
|
|
|
|
|
mov ecx, [num_proc]
|
|
|
|
|
mcall
|
|
|
|
|
cld
|
|
|
|
|
lea si,[pib.process_name]
|
|
|
|
|
lea di,[minus]
|
|
|
|
|
mov cx,7
|
|
|
|
|
rep cmps byte [si],[di]
|
|
|
|
|
jcxz .qwer
|
|
|
|
|
sub [num_proc],1
|
|
|
|
|
cmp [num_proc],1
|
|
|
|
|
jne .fgf
|
|
|
|
|
test [trig_sys],200h
|
|
|
|
|
ret
|
|
|
|
|
.qwer:
|
|
|
|
|
mov eax,[pib+process_information.cpu_usage]
|
|
|
|
|
mov [q_takt],eax
|
|
|
|
|
cmp [q_takt],200000
|
|
|
|
|
jb .asdf
|
|
|
|
|
ret
|
|
|
|
|
.asdf:
|
|
|
|
|
add [count_err],1
|
|
|
|
|
cmp [count_err],6
|
|
|
|
|
ja .djbn
|
|
|
|
|
ret
|
|
|
|
|
.djbn:
|
|
|
|
|
mov [count_err],0
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
or [trig_sys],200h
|
|
|
|
|
not [trig_sys]
|
|
|
|
|
ret
|
|
|
|
|
enproc:
|
|
|
|
|
mov [num_proc],255
|
|
|
|
|
.fgf:
|
|
|
|
|
mov eax,9
|
|
|
|
|
mov ebx,pib
|
|
|
|
|
mov ecx, [num_proc]
|
|
|
|
|
mcall
|
|
|
|
|
cld
|
|
|
|
|
lea si,[pib.process_name]
|
|
|
|
|
lea di,[minus]
|
|
|
|
|
mov cx,7
|
|
|
|
|
rep cmps byte [si],[di]
|
|
|
|
|
jcxz .qwer
|
|
|
|
|
sub [num_proc],1
|
|
|
|
|
cmp [num_proc],1
|
|
|
|
|
jne .fgf
|
|
|
|
|
ret
|
|
|
|
|
.qwer:
|
|
|
|
|
or [trig_sys],400h
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
; *********************************************
|
|
|
|
|
; ******* WINDOW DEFINITIONS AND DRAW ********
|
|
|
|
|
; *********************************************
|
|
|
|
|
|
|
|
|
|
draw_window:
|
|
|
|
|
mov eax,48
|
|
|
|
|
mov ebx,3
|
|
|
|
|
mov ecx,sc
|
|
|
|
|
mov edx,sizeof.system_colors
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,12 ; function 12:tell os about windowdraw
|
|
|
|
|
mov ebx,1 ; 1, start of draw
|
|
|
|
|
mcall
|
|
|
|
|
; DRAW WINDOW
|
|
|
|
|
xor eax,eax ; function 0 : define and draw window
|
|
|
|
|
mov ebx,100*65536+550 ; [x start] *65536 + [x size]
|
|
|
|
|
mov ecx,100*65536+420 ; [y start] *65536 + [y size]
|
|
|
|
|
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl
|
|
|
|
|
or edx,0x33000000
|
2011-10-15 03:00:12 +02:00
|
|
|
|
mov edi,header
|
2011-01-29 20:26:09 +01:00
|
|
|
|
mcall
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,5*65536+5
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov edx,label1
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,300*65536+5
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov edx,label5
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,300*65536+15
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov edx,label6
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,25*65536+35
|
|
|
|
|
mov ecx,0xC00000dd
|
|
|
|
|
mov edx,song_path
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,100*65536+5
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov edx,playlist
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
test [trig_sys],4h
|
|
|
|
|
jnz .zam1
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,5*65536+15
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov edx,label3
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
jmp .zam2
|
|
|
|
|
.zam1:
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,5*65536+15
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov edx,label2
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ebx,5*65536+25
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov edx,label4
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
.zam2:
|
|
|
|
|
|
|
|
|
|
; mov eax,47
|
|
|
|
|
; mov esi,0x50000000
|
|
|
|
|
; mov ecx, [trig_sys]
|
|
|
|
|
; mov edi,[sc.work]
|
|
|
|
|
; mov ebx,0x00080100
|
|
|
|
|
; mov edx,385*65536+25
|
|
|
|
|
; mcall
|
|
|
|
|
mov eax,47
|
|
|
|
|
mov esi,0x50000000
|
|
|
|
|
mov ecx, [song_count]
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mov ebx,0x00030000
|
|
|
|
|
mov edx,500*65536+5
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,47
|
|
|
|
|
mov esi,0x50000000
|
|
|
|
|
movzx ecx, [poz_song]
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mov ebx,0x00030000
|
|
|
|
|
mov edx,500*65536+15
|
|
|
|
|
mcall
|
|
|
|
|
mov [bbut],32
|
|
|
|
|
mov [poz_but],48*65536+10
|
|
|
|
|
mov edx,6
|
|
|
|
|
butt1:
|
|
|
|
|
mov ebx,0*65536+20
|
|
|
|
|
mov ecx,[poz_but]
|
|
|
|
|
mov esi,[color1]
|
|
|
|
|
movzx eax,[poz_butt]
|
|
|
|
|
cmp edx,eax
|
|
|
|
|
jne .uuu
|
|
|
|
|
mov esi,[color2]
|
|
|
|
|
.uuu:
|
|
|
|
|
mov eax,8
|
|
|
|
|
mcall
|
|
|
|
|
add edx,1
|
|
|
|
|
add [poz_but],10*65536
|
|
|
|
|
sub [bbut],1
|
|
|
|
|
cmp [bbut],0
|
|
|
|
|
jne butt1
|
|
|
|
|
mov eax,8
|
|
|
|
|
mov ebx,525*65536+15
|
|
|
|
|
mov ecx,45*65536+15
|
|
|
|
|
mov esi,0x00aaaadd
|
|
|
|
|
mov edx,4
|
|
|
|
|
mcall
|
|
|
|
|
mov eax,8
|
|
|
|
|
mov ebx,525*65536+15
|
|
|
|
|
mov ecx,365*65536+15
|
|
|
|
|
mov esi,0x00aaaadd
|
|
|
|
|
mov edx,5
|
|
|
|
|
mcall
|
|
|
|
|
mov [ai],32
|
|
|
|
|
mov [list_poz],25*65536+50
|
|
|
|
|
mov ebx,[poz_db3]
|
|
|
|
|
mov [poz_db2],ebx
|
|
|
|
|
list:
|
|
|
|
|
mov eax,4
|
|
|
|
|
mov ecx,0xC0000000
|
|
|
|
|
mov ebx,[poz_db2]
|
|
|
|
|
lea edx,[memlist+ebx]
|
|
|
|
|
mov ebx, [list_poz]
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
mcall
|
|
|
|
|
add [list_poz],10
|
|
|
|
|
add [poz_db2],255
|
|
|
|
|
sub [ai],1
|
|
|
|
|
cmp [ai],0
|
|
|
|
|
ja list
|
|
|
|
|
mov eax,12 ; function 12:tell os about windowdraw
|
|
|
|
|
mov ebx,2 ; 2, end of draw
|
|
|
|
|
mcall
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; DATA AREA
|
|
|
|
|
|
|
|
|
|
|
2011-10-15 03:00:12 +02:00
|
|
|
|
header: db '<27>ந<EFBFBD><E0AEA8>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> v 0.20 :)',0
|
2011-01-29 20:26:09 +01:00
|
|
|
|
play_list: db '1.kpl',0
|
|
|
|
|
cd_0: db 'c',0
|
|
|
|
|
hd_0: db 'h',0
|
|
|
|
|
label1: db '<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:',0
|
|
|
|
|
label2: db '᪠<><E1AAA0><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD>... :) ',0
|
|
|
|
|
label3: db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> ᪠<><E1AAA0><EFBFBD><E0AEA2><EFBFBD><EFBFBD>',0
|
|
|
|
|
label4: db '<27><><EFBFBD><EFBFBD>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<>:',0
|
|
|
|
|
label5: db '<27>ᥣ<EFBFBD> 䠩<><E4A0A9><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:',0
|
|
|
|
|
label6: db '<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>:',0
|
|
|
|
|
minus: db 'ac97snd',0
|
|
|
|
|
player: db '/rd/1/ac97snd' ,0
|
|
|
|
|
my_draw db 0
|
|
|
|
|
n_razd db 0
|
|
|
|
|
trig_scan db 0
|
|
|
|
|
char_con db 0
|
|
|
|
|
poz_butt db 0
|
|
|
|
|
poz_song db 0
|
|
|
|
|
count_err dd 0
|
|
|
|
|
num_proc dd 0
|
|
|
|
|
q_takt dd 0
|
|
|
|
|
razm_str dd 0
|
|
|
|
|
fold dd 0
|
|
|
|
|
razm_path dd 0
|
|
|
|
|
trig_sys dd 0
|
|
|
|
|
poz_db dd 0
|
|
|
|
|
poz_db2 dd 0
|
|
|
|
|
poz_db3 dd 255
|
|
|
|
|
song_poz dd 0
|
|
|
|
|
list_poz dd 5*65536+50
|
|
|
|
|
song_count dd 0
|
|
|
|
|
ai dd 0
|
|
|
|
|
st_r dd 0
|
|
|
|
|
bbut dd 0
|
|
|
|
|
poz_but dd 0
|
|
|
|
|
sme dd 0
|
|
|
|
|
color1 dd 0x006666dd
|
|
|
|
|
color2 dd 0x00dddddd
|
|
|
|
|
ss2 dd 0
|
|
|
|
|
zzz dw 22
|
|
|
|
|
scan_rez:
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
floc:
|
|
|
|
|
pc: db '/'
|
|
|
|
|
td: db 'h'
|
|
|
|
|
dr: db 'd'
|
|
|
|
|
ns db 48
|
|
|
|
|
vc: db '/'
|
|
|
|
|
nd db 48
|
|
|
|
|
ks: db '/'
|
|
|
|
|
fl:
|
|
|
|
|
rb 255
|
|
|
|
|
playlist rb 255
|
|
|
|
|
song_path rb 255
|
|
|
|
|
folder_inf:
|
|
|
|
|
dd 7
|
|
|
|
|
dd 0
|
|
|
|
|
dd song_path
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
db 0
|
|
|
|
|
dd player
|
|
|
|
|
file_info:
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
db 0
|
|
|
|
|
dd floc
|
|
|
|
|
file_info2:
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
dd 0
|
|
|
|
|
db 0
|
|
|
|
|
dd 0
|
|
|
|
|
string1 rb 255
|
|
|
|
|
|
|
|
|
|
I_END:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
temp dd ?
|
|
|
|
|
sc system_colors
|
|
|
|
|
pib process_information
|
|
|
|
|
memlist rb 65536
|
|
|
|
|
|