forked from KolibriOS/kolibrios
Add sources of 'listplay' and 'startmus' to SVN; remove pre-compiled versions; force compile from sources.
git-svn-id: svn://kolibrios.org@1794 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
401fd12ef7
commit
8beb273f45
@ -148,6 +148,8 @@ FASM_PROGRAMS:=\
|
|||||||
media/cdp:MEDIA/CDP:$(PROGS)/media/cdp/trunk/cdp.asm \
|
media/cdp:MEDIA/CDP:$(PROGS)/media/cdp/trunk/cdp.asm \
|
||||||
media/kiv:MEDIA/KIV:$(PROGS)/media/kiv/trunk/kiv.asm \
|
media/kiv:MEDIA/KIV:$(PROGS)/media/kiv/trunk/kiv.asm \
|
||||||
media/midamp:MEDIA/MIDAMP:$(PROGS)/media/midamp/trunk/midamp.asm \
|
media/midamp:MEDIA/MIDAMP:$(PROGS)/media/midamp/trunk/midamp.asm \
|
||||||
|
media/listplay:MEDIA/LISTPLAY:$(PROGS)/media/listplay/trunk/listplay.asm \
|
||||||
|
media/startmus:MEDIA/STARTMUS:$(PROGS)/media/startmus/trunk/STARTMUS.ASM \
|
||||||
network/airc:NETWORK/AIRC:$(PROGS)/network/airc/trunk/airc.asm \
|
network/airc:NETWORK/AIRC:$(PROGS)/network/airc/trunk/airc.asm \
|
||||||
network/arpstat:NETWORK/ARPSTAT:$(PROGS)/network/arpstat/trunk/arpstat.asm \
|
network/arpstat:NETWORK/ARPSTAT:$(PROGS)/network/arpstat/trunk/arpstat.asm \
|
||||||
network/chess:NETWORK/CHESS:$(PROGS)/network/chess/trunk/chess.asm \
|
network/chess:NETWORK/CHESS:$(PROGS)/network/chess/trunk/chess.asm \
|
||||||
@ -246,7 +248,6 @@ OTHER_FILES:=asciivju:ASCIIVJU autorun.dat:AUTORUN.DAT \
|
|||||||
lib/cnv_png.obj:LIB/CNV_PNG.OBJ lib/msgbox.obj:LIB/MSGBOX.OBJ \
|
lib/cnv_png.obj:LIB/CNV_PNG.OBJ lib/msgbox.obj:LIB/MSGBOX.OBJ \
|
||||||
lib/pixlib.obj:LIB/PIXLIB.OBJ lib/sort.obj:LIB/SORT.OBJ \
|
lib/pixlib.obj:LIB/PIXLIB.OBJ lib/sort.obj:LIB/SORT.OBJ \
|
||||||
media/ac97snd:MEDIA/AC97SND media/kiv.ini:MEDIA/KIV.INI \
|
media/ac97snd:MEDIA/AC97SND media/kiv.ini:MEDIA/KIV.INI \
|
||||||
media/listplay:MEDIA/LISTPLAY media/startmus:MEDIA/STARTMUS \
|
|
||||||
network/jmail:NETWORK/JMAIL network/zeroconf.ini:NETWORK/ZEROCONF.INI \
|
network/jmail:NETWORK/JMAIL network/zeroconf.ini:NETWORK/ZEROCONF.INI \
|
||||||
#end of list
|
#end of list
|
||||||
#3d/logio.bmp:3D/LOGIO.BMP 3d/cubetext:3D/CUBETEXT
|
#3d/logio.bmp:3D/LOGIO.BMP 3d/cubetext:3D/CUBETEXT
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -148,6 +148,8 @@ FASM_PROGRAMS:=\
|
|||||||
media/cdp:MEDIA/CDP:$(PROGS)/media/cdp/trunk/cdp.asm \
|
media/cdp:MEDIA/CDP:$(PROGS)/media/cdp/trunk/cdp.asm \
|
||||||
media/kiv:MEDIA/KIV:$(PROGS)/media/kiv/trunk/kiv.asm \
|
media/kiv:MEDIA/KIV:$(PROGS)/media/kiv/trunk/kiv.asm \
|
||||||
media/midamp:MEDIA/MIDAMP:$(PROGS)/media/midamp/trunk/midamp.asm \
|
media/midamp:MEDIA/MIDAMP:$(PROGS)/media/midamp/trunk/midamp.asm \
|
||||||
|
media/listplay:MEDIA/LISTPLAY:$(PROGS)/media/listplay/trunk/listplay.asm \
|
||||||
|
media/startmus:MEDIA/STARTMUS:$(PROGS)/media/startmus/trunk/STARTMUS.ASM \
|
||||||
network/airc:NETWORK/AIRC:$(PROGS)/network/airc/trunk/airc.asm \
|
network/airc:NETWORK/AIRC:$(PROGS)/network/airc/trunk/airc.asm \
|
||||||
network/arpstat:NETWORK/ARPSTAT:$(PROGS)/network/arpstat/trunk/arpstat.asm \
|
network/arpstat:NETWORK/ARPSTAT:$(PROGS)/network/arpstat/trunk/arpstat.asm \
|
||||||
network/chess:NETWORK/CHESS:$(PROGS)/network/chess/trunk/chess.asm \
|
network/chess:NETWORK/CHESS:$(PROGS)/network/chess/trunk/chess.asm \
|
||||||
@ -247,7 +249,6 @@ OTHER_FILES:=asciivju:ASCIIVJU autorun.dat:AUTORUN.DAT \
|
|||||||
lib/cnv_png.obj:LIB/CNV_PNG.OBJ lib/msgbox.obj:LIB/MSGBOX.OBJ \
|
lib/cnv_png.obj:LIB/CNV_PNG.OBJ lib/msgbox.obj:LIB/MSGBOX.OBJ \
|
||||||
lib/pixlib.obj:LIB/PIXLIB.OBJ lib/sort.obj:LIB/SORT.OBJ \
|
lib/pixlib.obj:LIB/PIXLIB.OBJ lib/sort.obj:LIB/SORT.OBJ \
|
||||||
media/ac97snd:MEDIA/AC97SND media/kiv.ini:MEDIA/KIV.INI \
|
media/ac97snd:MEDIA/AC97SND media/kiv.ini:MEDIA/KIV.INI \
|
||||||
media/listplay:MEDIA/LISTPLAY media/startmus:MEDIA/STARTMUS \
|
|
||||||
network/jmail:NETWORK/JMAIL network/zeroconf.ini:NETWORK/ZEROCONF.INI \
|
network/jmail:NETWORK/JMAIL network/zeroconf.ini:NETWORK/ZEROCONF.INI \
|
||||||
#end of list
|
#end of list
|
||||||
#3d/logio.bmp:3D/LOGIO.BMP 3d/cubetext:3D/CUBETEXT
|
#3d/logio.bmp:3D/LOGIO.BMP 3d/cubetext:3D/CUBETEXT
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -207,7 +207,7 @@ fasm demos\3dtcub10\trunk\3dtcub10.asm %BIN%\3d\3dtcub10
|
|||||||
cd demos\aclock\trunk\
|
cd demos\aclock\trunk\
|
||||||
nasmw -t -f bin -o ..\..\..\%BIN%\demos\aclock aclock.asm
|
nasmw -t -f bin -o ..\..\..\%BIN%\demos\aclock aclock.asm
|
||||||
cd ..\..\..
|
cd ..\..\..
|
||||||
fasm demos\bcdclk\bcdclk\bcdclk.asm %BIN%\demos\bcdclk
|
fasm demos\bcdclk\trunk\bcdclk.asm %BIN%\demos\bcdclk
|
||||||
fasm demos\bgitest\trunk\bgitest.asm %BIN%\fonts\bgitest
|
fasm demos\bgitest\trunk\bgitest.asm %BIN%\fonts\bgitest
|
||||||
fasm demos\colorref\trunk\colorref.asm %BIN%\demos\colorref
|
fasm demos\colorref\trunk\colorref.asm %BIN%\demos\colorref
|
||||||
fasm demos\crownscr\trunk\crownscr.asm %BIN%\3d\crownscr
|
fasm demos\crownscr\trunk\crownscr.asm %BIN%\3d\crownscr
|
||||||
|
844
programs/media/listplay/trunk/listplay.asm
Normal file
844
programs/media/listplay/trunk/listplay.asm
Normal file
@ -0,0 +1,844 @@
|
|||||||
|
|
||||||
|
;
|
||||||
|
; Compile with flat assembler
|
||||||
|
; <20>à®£à ¬¬ª ¯®§¢®«ïîé ï ¯à®¨£àë¢ âì ¯«¥©«¨áâ
|
||||||
|
; <20> §à ¡®â «: „¥¤Žª :)
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
include '..\..\macros.inc'
|
||||||
|
|
||||||
|
START: ; start of execution
|
||||||
|
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
|
||||||
|
mov edi,title
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
title: db '<27>ந£àë¢ ¥¬ ¯«¥©«¨áâ v 0.19 :)',0
|
||||||
|
play_list: db '1.kpl',0
|
||||||
|
cd_0: db 'c',0
|
||||||
|
hd_0: db 'h',0
|
||||||
|
label1: db '” ©« ¯«¥©«¨áâ :',0
|
||||||
|
label2: db '᪠¨à®¢ ¨¥ § ª®ç¥®... :) ',0
|
||||||
|
label3: db '<27>®¤®¦¤¨â¥, ¯®¦ «ã©áâ , ¨¤ñâ ᪠¨à®¢ ¨¥',0
|
||||||
|
label4: db '‚®á¯à®¨§¢®¤¨¬ë© ä ©«:',0
|
||||||
|
label5: db '‚ᥣ® ä ©«®¢ ¢ ¯«¥©«¨á⥠©¤¥®:',0
|
||||||
|
label6: db '<27>®¬¥à ¢®á¯à®¨§¢®¤¨¬®£® ä ©« :',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
|
||||||
|
|
73
programs/media/startmus/trunk/STARTMUS.ASM
Normal file
73
programs/media/startmus/trunk/STARTMUS.ASM
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
use32
|
||||||
|
db 'MENUET01'
|
||||||
|
dd 1
|
||||||
|
dd start
|
||||||
|
dd i_end
|
||||||
|
dd 0x400
|
||||||
|
dd 0x400
|
||||||
|
dd 0,0
|
||||||
|
|
||||||
|
include '..\..\macros.inc'
|
||||||
|
|
||||||
|
start:
|
||||||
|
mov eax, 55
|
||||||
|
mov ebx, eax
|
||||||
|
mov esi, melody2
|
||||||
|
int 0x40
|
||||||
|
mov eax, 5
|
||||||
|
mov ebx, 1000
|
||||||
|
int 0x40
|
||||||
|
mov eax, -1
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
melody1:
|
||||||
|
db 0xE4, 0x35, 0x99, 0x33, 0x99, 0x31, 0x99, 0x33
|
||||||
|
db 0xE4, 0x35, 0x99, 0x35, 0x99, 0x36, 0x99, 0x38, 0x99, 0x3A
|
||||||
|
db 0xE4, 0x36, 0xE4, 0x36
|
||||||
|
db 0xB2, 0xFF
|
||||||
|
db 0xE4, 0x33, 0x99, 0x31, 0x99, 0x2C, 0x99, 0x31
|
||||||
|
db 0xE4, 0x33, 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xE4, 0x35, 0xE4, 0x35
|
||||||
|
db 0xB2, 0xFF
|
||||||
|
db 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xE4, 0x33, 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xE4, 0x39, 0xE4, 0x39
|
||||||
|
db 0xB2, 0xFF
|
||||||
|
db 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xE4, 0x33, 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
|
||||||
|
db 0xE4, 0x35, 0xE4, 0x35
|
||||||
|
db 0
|
||||||
|
|
||||||
|
melody2:
|
||||||
|
db 0x90, 0x31, 0x90, 0x33, 0x90, 0x35, 0x90, 0x36
|
||||||
|
db 0xA0, 0xFF
|
||||||
|
db 0xA0, 0x06
|
||||||
|
db 0x90, 0xFF
|
||||||
|
db 0xA0, 0x06
|
||||||
|
db 0x90, 0xFF
|
||||||
|
db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38
|
||||||
|
db 0xA0, 0xFF
|
||||||
|
db 0xA0, 0x18
|
||||||
|
db 0x90, 0xFF
|
||||||
|
db 0xA0, 0x18
|
||||||
|
db 0x90, 0xFF
|
||||||
|
db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38
|
||||||
|
db 0xA0, 0xFF
|
||||||
|
db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38
|
||||||
|
db 0xA0, 0xFF
|
||||||
|
db 0x90, 0x31, 0x90, 0x33, 0x90, 0x35, 0x90, 0x36
|
||||||
|
db 0xA0, 0xFF
|
||||||
|
db 0xA0, 0x16
|
||||||
|
db 0x90, 0xFF
|
||||||
|
db 0xA0, 0x16
|
||||||
|
db 0
|
||||||
|
|
||||||
|
melody3:
|
||||||
|
db 0x99, 0x31, 0xB2, 0x36, 0x99, 0x3A, 0xB2, 0x36
|
||||||
|
db 0x99, 0x33, 0xB2, 0x28, 0xBC, 0x38
|
||||||
|
db 0
|
||||||
|
i_end:
|
1
programs/media/startmus/trunk/build.bat
Normal file
1
programs/media/startmus/trunk/build.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
fasm startmus.asm startmus
|
Loading…
Reference in New Issue
Block a user