Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 135 → Rev 139

/programs/media/ac97wav/trunk/ac97wav.asm
11,8 → 11,9
; stops playing before closing a window
; 0.08 Nov 24, 2004 added support for 8bit and mono modes
; +variable rate for some chipsets
; 0.09 August 26, 2006 modified to use function 70
;
; Use [flat assembler 1.56] to compile.
; Use [flat assembler 1.64] to compile.
;
;---------------------------------------------------------------------
 
31,7 → 32,6
 
;---------------------------------------------------------------------
 
include "lang.inc"
include "macros.inc" ; standart macros & constants
include "meosfunc.inc" ; MenuetOS API functions names
include "debug.inc" ; printing to debug board
449,20 → 449,25
;; in: nothing
;; out: nothing (but sound :) !corrupts registers!
play:
; at first, reset file
mov [fileinfo.first_block], 0
; at first, reset file and get file size
mcall MF_SYSTREE, attrinfo
test eax, eax
jnz .notfound
mov eax, [fileattr+32]
mov [file_size], eax
mov [fileinfo.first_byte], 0
mcall MF_SYSTREE, fileinfo ; load a block, returns error code in eax
; and size of the file in ebx
test eax, eax ; 0 - successful
jz @f
cmp eax, 6 ; 6 = eof - successful too
jz @f
.notfound:
print "AC97: File not found!"
mov [status], ST_STOP
jmp .exit
@@:
shr ebx, 9 ; size_of_file / 512 = number_of_blocks
mov [file_size], ebx
 
 
mov al, [LOAD_BUFFER+32] ; bytes per sample
dec al
jz @f
608,7 → 613,7
 
movzx edx, byte [wav_mode]
mov ecx, [blocks + edx * 4]
mov [fileinfo.blocks], ecx
mov [fileinfo.bytes], ecx
 
mov esi, LOAD_BUFFER
mov edi, [buffers+eax*4]
617,14 → 622,16
mcall MF_SYSTREE, fileinfo
test eax, eax
jz @f
cmp eax, 6
jz @f
cmp [attempts],100
je @f
inc [attempts]
jmp start_attempts
dpd eax
newline
dpd [fileinfo.first_block]
newline
; dpd eax
; newline
; dpd [fileinfo.first_block]
; newline
@@:
; print " loaded!"
 
652,7 → 659,7
 
pop edx ebx
mov eax,[esp+4] ;restore buffer index
add [fileinfo.first_block], ecx ; +60Kb
add [fileinfo.first_byte], ecx ; +60Kb
call [convert + edx * 4]
;start fix for MM (4)
mov eax,[esp+4] ;restore buffer index
881,7 → 888,7
type_of_conversion db 0
 
convert dd c8mono, c8stereo, c16mono, c16stereo
blocks dd 30, 60, 60, 120
blocks dd 30*512, 60*512, 60*512, 120*512
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
993,20 → 1000,29
;---------------------------------------------------------------------
volume dd 15
 
attrinfo:
dd 5
dd 0
dd 0
dd 0
dd fileattr
db 0
dd textbox_string
 
fileinfo:
.mode dd 0 ; READ
.first_block dd 0
.blocks dd 120 ; 120 Kb
.first_byte dd 0
dd 0
.bytes dd 60*1024 ; 60 Kb
.dest dd LOAD_BUFFER ;file_data
.work dd work_area
; db "/HD/1/WINDOWS/MEDIA/WICEB7~1.WAV",0
;sz textbox_string, "/hd/1/testmuz/menuet11.wav",0
sz textbox_string, " ",0
; rb 256
textbox_string:
;---------------------------------------------------------------------
 
IMAGE_END: ; end of program's image
rb 100-textbox_string.size
rb 257
; rb 257-textbox_string.size
; textbox_string.size
 
;---------------------------------------------------------------------
1035,6 → 1051,8
 
status db ?
 
fileattr: rb 40
 
;---------------------------------------------------------------------
phys_bdl_buffer rd 1
phys_wav_buffer1 rd 1
/programs/media/ac97wav/trunk/frontend.inc
1,4 → 1,11
thread:
mov edi, textbox_string
or ecx, -1
xor eax, eax
repnz scasb
not ecx
dec ecx
mov [textbox_position], cl
call draw_window
call main_loop
mov [status], ST_EXIT
36,7 → 43,7
cmp ah, 8
je .backspace
movzx ecx, [textbox_position]
cmp ecx, 47
cmp ecx, 255
jae .enter
mov [textbox_string + ecx], ah
inc [textbox_position]
50,8 → 57,8
movzx ecx, [textbox_position]
test ecx, ecx
jz main_loop
mov [textbox_string + ecx], byte 0
dec [textbox_position]
mov [textbox_string + ecx - 1], byte 0
call textbox_draw
jmp main_loop
 
173,17 → 180,15
mcall MF_GETMOUSE, MS_COORDS_WINDOW
shr eax, 16 ; get mouse.x
sub eax, 7
test eax, eax
jz @f
imul eax, [file_size]
imul [file_size]
mov ebx, 286
cdq
div ebx
@@:
;dps "block: "
;dpd eax
;newline
mov [fileinfo.first_block], eax
mov [fileinfo.first_byte], eax
call draw_progress_bar
jmp main_loop
ret
244,8 → 249,8
draw_progress_bar:
pushad
 
imul eax, [fileinfo.first_block], PBAR_WIDTH
cdq
mov eax, PBAR_WIDTH
mul [fileinfo.first_byte]
div [file_size]
 
push eax
266,5 → 271,5
sz buttons_text, " Play Stop << >> Vol- Vol+"
 
textbox_active db 0
textbox_position db textbox_string.size-1
textbox_position db 0;textbox_string.size-1
file_size dd 100
/programs/media/ac97wav/trunk/macros.inc
143,6 → 143,8
 
 
 
; language for programs
lang fix ru ; ru en fr ge fi
 
 
 
/programs/media/ac97wav/trunk/meosfunc.inc
19,7 → 19,6
PRT_FREE = 1
MF_THREAD = 51
THR_CREATE = 1
MF_SYSTREE = 58
MF_PCI = 62
MF_EXIT = -1
MF_INTERNAL_SERVICES = 68
26,4 → 25,5
ALLOC_PHYS_MEM =5
FREE_PHYS_MEM =6
SET_PHYS_BUFFER =7
GET_PHYS_BUFFER =8
GET_PHYS_BUFFER =8
MF_SYSTREE = 70
/programs/media/midamp/trunk/draw.inc
8,8 → 8,7
test eax,eax
jz .ex
mov ebp,[coo]
mov ebx,[ebp-20]
mul ebx
mul dword [ebp-20]
mov ebx,[tick_count]
test ebx,ebx
jz .ex
353,4 → 352,4
dw 10,40,70,100,240
 
about1:
db 13,10,'* MIDAMP for MenuetOS v1.0 by Willow, July 2005 *',13,10,0
db 13,10,'* MIDAMP for KolibriOS v1.1 by Willow, July 2005 *',13,10,0
/programs/media/midamp/trunk/event.inc
341,51 → 341,37
and byte[edi],0
mov esi,filename
mov edi,fnbuf
mov ecx,64
rep movsb
mov dword[file_info+12],dir_table
mov dword[file_info+8],DIR_SIZE/512
mov ecx,1024/4
rep movsd
and dword [dir_info+4], 0
.nxt2:
mcall 58,file_info
mov ecx,DIR_SIZE/32
mov esi,dir_table
.nxt:
mov al,[esi]
cmp al,0xe5
je .no
test al,al
jz .end
test byte[esi+12],11000b
mcall 70, dir_info
cmp ebx, 1
jnz red ;still
test byte [dir_table+32], 11000b ; exclude directories & vol label
jnz .no
mov eax,[esi+7]
mov al,'.'
cmp eax,'.MID'
je .ok
cmp eax,'.KAR'
jne .no
mov edi, dir_table+32+40
mov esi, edi
xor eax, eax
or ecx, -1
repnz scasb
mov eax, [edi-5]
or eax, 0x20202000
cmp eax, '.mid'
jz .ok
cmp eax, '.kar'
jnz .no
.ok:
mov [esi+8],eax
pusha
lea ecx, [edi-dir_table-32-40-1]
mov edi,edx
mov ecx,12
rep movsb
and byte[edi],0
mov ecx,edi
sub ecx,fnbuf
mov esi,fnbuf
sub ecx, esi
call PL_add
popa
.no:
add esi,32
loop .nxt
add dword[file_info+4],DIR_SIZE/512
inc dword [dir_info+4]
jmp .nxt2
.end:
mov ebx,file_info
and dword[ebx+4],0
mov [fsize],1
mov dword[ebx+12],workarea
jmp red;still
bSelZero:
call PL_clearsel
jmp red
/programs/media/midamp/trunk/gif_lite.inc
88,7 → 88,7
mov [.img_count],eax
inc eax
cmp dword[esi],'GIF8'
jne .er ; signature
jne .ex ; signature
mov ecx,[esi+0xa]
inc eax
add esi,0xd
123,7 → 123,7
jmp .block_skip
.noextblock:
cmp byte[edi],0x2c ; image beginning
jne .er
jne .ex
inc [.img_count]
inc edi
mov esi,[.cur_info]
211,9 → 211,6
call .Gif_output
pop ebx eax
jmp .add
.er:
pop edi
jmp .ex
.end:
mov eax,[.cur_info]
mov [eax],edi
229,7 → 226,6
cmp byte[edi],0x3b
jne .nextblock
xor eax,eax
stosd
mov ecx,[.img_count]
.ex:
pop edi esi
/programs/media/midamp/trunk/playlist.inc
236,8 → 236,10
and [list_count],0
mov [pl_ptr],playlist
mov ebx,PL_info
mov dword[ebx+12],playlist
mov eax,58
mov dword[ebx+16],playlist
and dword[ebx],0
mov dword[ebx+12],20*512
mov eax,70
int 0x40
test eax,eax
jz .ok1 ; ebx- filesize
295,7 → 297,7
mov eax,0x0a0d
mov edi,[pl_ptr]
lea edx,[edi+2]
mov [PL_info+12],edx
mov [PL_info+16],edx
.savl:
movzx ebx,word[edi]
and bx,not FL_MULSEL
305,9 → 307,9
stosw
sub edi,[pl_ptr]
mov ebx,PL_info
mov [ebx+8],edi
mov dword[ebx],1
mov eax,58
mov [ebx+12],edi
mov byte[ebx],2
mov eax,70
int 0x40
.ex:
ret
343,7 → 345,7
PL_info:
.mode dd 0
dd 0
.bytes dd 20
dd 0
dd hash_table
.bytes dd 20*512
dd 0
db PLAYLIST_PATH,0
/programs/other/archer/trunk/@RCHER.ASM
4,7 → 4,7
;
; Created: May 6, 2005
;
; Last changed: July 14, 2005
; Last changed: August 26, 2006
;
; Compile with FASM
 
13,7 → 13,7
png_imag = output+OUTBUF
PARAM_PTR = os_work;png_image
MEMINIT=next_code;output
DUMPFILE equ '/hd/1/out.txt'
DUMPFILE equ '/hd0/1/out.txt'
 
SHOW_RBLOCK equ 0;1
SHOW_PNG_SEC equ 0;1
62,7 → 62,7
dd start
dd I_END
dd MEMINIT
dd main_stack;MEMORY-2048
dd main_stack_top;MEMORY-2048
if PARAM_PTR eq param
dd 0
else
337,7 → 337,7
Msg 37
.nomsg:
mov [outfile.out],ebx
mcall 58,outfile
mcall 70,outfile
; dps 'Before Quit1'
; ud2
test [Flags],TAR_MODE
385,7 → 385,7
Msg 37
test [Flags],LIST_MODE
jne quit
mcall 58,outfile
mcall 70,outfile
.pad:
call StartPad
.notar:
/programs/other/archer/trunk/data.inc
10,22 → 10,30
if SYS eq win
db 'D:\Ivushkin\projects\zip\output.raw',0
end if
dd 1
dd 2
dd 0
dd 0
.size dd 0
.out dd output
dd os_work
if ~SYS eq win
dumpfile:
db DUMPFILE,0
dumpf_len=$-dumpfile
end if
attrinfo:
dd 5
dd 0
dd 0
dd 0
dd fileattr
db 0
dd filename
Finfo:
dd 0
.block dd 0
.count dd BUFSIZE*2
dd 0
.count dd BUFSIZE*1024
.ptr dd BUFPTR
dd os_work
 
filename:
if SYS eq win
84,6 → 92,10
Dheader rb 12
Dpassword rb PASSW_LEN
 
if ~SYS eq win
fileattr rd 40/4
end if
 
png_ dd ?
fat_ dd ?
fat_fnum dd ?
125,11 → 137,15
hclen db ?
max_len dw ?
 
align 4
fat:
rb 4096;512
child_stack:
rb 1024
child_stack_top:
main_stack:
rb 1024
main_stack_top:
area:
rb INBUF
os_work rb 4*1024
/programs/other/archer/trunk/dump.inc
18,7 → 18,7
if ~ run_new eq
test edx,edx
jne .exist
mcall 19,Board_seek.board_fn,0
mcall 70,Board_seek.board_fn,0
mov edx,eax
mcall 5,20
end if
51,5 → 51,11
.ok:
mov edx,[ebx+30]
ret
.board_fn db 'BOARD '
.board_fn:
dd 7
dd 0
dd 0
dd 0
dd 0
db '/RD/1/BOARD',0
end if
/programs/other/archer/trunk/macros.inc
143,11 → 143,6
 
 
 
; language for programs
lang fix ru ; ru en fr ge fi
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
179,7 → 174,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
/programs/other/archer/trunk/sys.inc
18,8 → 18,11
mov ebx,eax
mov [filesize],eax
else
mcall 58,Finfo
and dword [attrinfo+32], 0
mcall 70,attrinfo
mov eax,[attrinfo+32]
mov [filesize],ebx
mcall 70,Finfo
end if
ret
 
37,10 → 40,8
; esi - current pointer (in memory!)
; ebx - translation method: 0 - beginning, 1 - current, 2 - end
push eax ecx edx
mov edx,[Finfo.block]
imul edx,BSIZE
sub esi,BUFPTR
add esi,edx
add esi,[Finfo.block]
cmp ebx,1
je .cur
jb .begin
49,13 → 50,9
.cur:
add eax,esi
.begin:
mov ecx,BSIZE
xor edx,edx
div ecx
lea esi,[BUFPTR+edx]
mov esi,BUFPTR
mov [Finfo.block],eax
if SYS eq win
mul ecx
invoke SetFilePointer,[hnd],eax,NULL,FILE_BEGIN
invoke ReadFile,[hnd],area,INBUF, os_work, NULL
; add [byte_count],area
62,8 → 59,8
else
; pregs
; wait
mov [Finfo.count],BUFSIZE*2
mcall 58,Finfo
mov [Finfo.count],BUFSIZE*1024
mcall 70,Finfo
; mov [byte_count],area+INBUF
end if
pop edx ecx eax
105,7 → 102,7
else
test [Flags],THREAD_YES
jnz .ex
mcall 51,1,thread,child_stack;MEMORY
mcall 51,1,thread,child_stack_top;MEMORY
mov [child],eax
end if
.ex:
249,75 → 246,10
je .stay
cmp al,'/'
jne .yespar
mov ecx,255
dec esi
mov edi,filename
xor al,al
rep stosb
mov ecx,255
mov edi,filename
rep movsb
; test [Flags],LIST_MODE
; jz again
xor eax,eax
mov edi,filename
mov ecx,255
repne scasb
cmp byte[edi-2],'/'
je .slash
mov byte[edi-1],'/'
inc edi
.slash:
; Dump filename,255,os_work
; ud2
mov ecx,edi
; dec ecx
mov edx,ecx
mov dword[Finfo],13
; mov dword[Finfo.count],1
mov edi,filename+5
sub ecx,edi
.lp:
mov al,'/'
repne scasb
; jne .ex
; dpd ecx
and byte[edi-1],0
mcall 58,Finfo
mov byte[edi-1],'/'
test ebx,32
jz .lp
test [Flags],LIST_MODE
jne .listm
and byte[edi-1],0
; Dump filename,255,os_work
jmp .agg
; ud2
.listm:
lea esi,[edi-1+ecx]
lea edi,[esi+1]
std
rep movsb
and byte[edi],0
cld
; dpd filename
 
inc edi
dpd edi
cmp edx,edi
jne .slash2
; cmp byte[edi],'/'
; je .slash2
mov byte[edi],'/'
inc edx
.slash2:
sub edx,edi
mov [lpath],edi
mov [lpath_len],edx
dpd edx
.agg:
mov dword[Finfo],0
; ud2
jmp again;cmdl
.yespar:
cmp al,'N'
/programs/other/rtfread/trunk/bgifont.inc
4,7 → 4,7
;
; Created: December 16, 2004
;
; Last changed: February 2, 2005
; Last changed: August 27, 2006
;
; Compile with FASM
 
237,18 → 237,16
mov esi,edi ; esi->FontName
mov [.dest],edi ; ptr to load font
if ~ BGI_LEVEL eq KERNEL
mov [.fsize],1
mov eax,58
mov ebx,.fontinfo
mov eax, 70
mov ebx, .fontattr
int 0x40
test eax,eax
jnz .fail
dps2 '1'
shr ebx,9
inc ebx
mov [.fsize],ebx
mov eax, [.fileattr+32]
mov [.fsize], eax
mov ebx,.fontinfo
mov eax,58
mov eax,70
int 0x40 ; ebx - file size
else
push edi esi edx
340,11 → 338,22
.fontinfo:
dd 0
dd 0
dd 0
.fsize dd 0
.dest dd 0
dd 0x10000
.fontfullname:
db BGIFONT_PATH
.font db 'FONT.CHR',0
 
.fontattr:
dd 5
dd 0
dd 0
dd 0
dd .fileattr
db 0
dd .fontfullname
.fileattr rd 40/4
else
.dest dd 0
.font db 'FONT CHR'
/programs/other/rtfread/trunk/rtf_lite.inc
14,10 → 14,10
mov ecx,[cur_block]
mov ebx,fileinfo
mov eax,ecx
shl eax,7
shl eax,16
mov [ebx+4],eax
; mov [ebx+12],esi
mcall 58
mcall 70
if DEBUG_BLOCK eq 1
; dps 'B='
; dpd ecx
72,7 → 72,7
pop [RetroGroup]
and [mode],not RTF_BLIND
mov [listptr],save_stack
mov [fileinfo.size],128
mov [fileinfo.size],128*512
; test ebp,RTF_HELP
test [mode],RTF_HELP
jne .noread
/programs/other/rtfread/trunk/rtfread.asm
91,23 → 91,17
mov esi,fname_buf
rep movsd
load_file:
xor eax,eax
mov ebx,fileinfo
mov [ebx+4],eax
inc eax
mov [fileinfo.size],eax
mcall 58
dpd ebx
and [wSave],0
mov [HClick],-100
load_help:
mov eax, 70
and [fileattr+32], 0
mov ebx, attrinfo
int 0x40
mov ebx, [fileattr+32]
test eax,eax
jz .sizok
cmp eax,5
je .sizok
.nosizok:
mov dword[fileinfo.name],N_A
.sizok:
and [wSave],0
mov [HClick],-100
mov eax,ebx
and eax,RTFSIZE-1
add eax,I_END
500,13 → 494,22
db '< > L A C H'
btn_end:
 
attrinfo:
dd 5
dd 0
dd 0
dd 0
dd fileattr
db 0
dd fileinfo.name
 
fileinfo:
dd 0
.block:
dd 0
dd 0
.size dd 1
dd I_END
dd sys_mem
.name:
; db '//'
; db ' /HD/1/RTF/texts/FASM.TXT',0
549,6 → 552,7
I_END0:
fname_buf:
rb 1024+16
fileattr rd 40/4
if BENCH eq 1
bench dd ?
end if