/kernel/branches/gfx_kernel/core/newproce.inc |
---|
468,6 → 468,7 |
;calculate parameter length |
mov esi,eax |
xor ecx,ecx |
inc ecx ; include terminating null |
.command_line_len: |
cmp byte [esi],0 |
jz .command_line_len_end |
/kernel/branches/gfx_kernel/gui/font.inc |
---|
1,119 → 1,107 |
align 4 |
dtext: ; Text String Output (rw by Johnny_B[john@kolibrios.org]) |
; eax x & y |
; ebx font ( 0xX0000000 ) & color ( 0x00RRGGBB ) |
; ebx style ( 0xX0000000 ) & color ( 0x00RRGGBB ) |
; X = ABnnb: |
; nn = font |
; A = 0 <=> output edx characters; otherwise output ASCIIZ string |
; B = 1 <=> fill background with color esi |
; ecx start of text |
; edx length |
; edi 1 force |
pushad |
call [disable_mouse] |
mov esi,edx ;esi=length |
mov ebp,ecx ;ebp=ptr to text |
mov ebp, ecx ; ebp=pointer to text |
mov ecx,ebx ;ecx=color |
movsx ebx,ax ;ebx=y |
sar eax,16 ;eax=x |
and esi, 0xFF ;limit of text = 255 symbols |
dtext.lnew: |
test esi, esi ; zero length ? |
jnz @f |
jmp dtext.output_end |
cmp edx, 255 |
jb .loop |
mov edx, 255 |
.loop: |
test ecx, ecx |
js .test_asciiz |
dec edx |
js .end |
jmp @f |
.test_asciiz: |
cmp byte [ebp], 0 |
jz .end |
@@: |
movzx edx,byte [ebp] ;edx=ascii code |
test edx,edx |
jz dtext.output_end |
push edx |
movzx edx, byte [ebp] |
inc ebp |
test ecx,0x10000000 |
jnz dtext.letnew2 |
align 4 |
.letnew: |
drawletter: ;output char of type 1(monotype) |
;eax - x |
;ebx - y |
;ecx - color |
;edx - ascii code |
jnz .font2 |
pushad |
call [disable_mouse] |
mov esi,9 |
lea ebp,[0x3F600+8*edx+edx] |
.symloop: |
push esi |
.symloop1: |
mov dl,byte [ebp] |
mov esi,8 |
.pixloop: |
test dl,1 |
jz .nopix |
or dl, 1 shl 6 |
.pixloop1: |
shr dl, 1 |
jz .pixloop1end |
jnc .nopix |
call [putpixel] |
jmp .pixloop1cont |
.nopix: |
shr dl,1 |
test ecx, 0x40000000 |
jz .pixloop1cont |
push ecx |
mov ecx, [esp+4+4] |
call [putpixel] |
pop ecx |
.pixloop1cont: |
inc eax |
dec esi |
jnz .pixloop |
sub eax,8 |
jmp .pixloop1 |
.pixloop1end: |
sub eax, 6 |
inc ebx |
inc ebp |
pop esi |
dec esi |
jnz .symloop |
jnz .symloop1 |
popad |
add eax,6 |
inc ebp ;ptr to text |
dec esi ;length |
jnz dtext.lnew |
jmp dtext.output_end |
dtext.letnew2: |
align 4 |
drawletter2: ;output char of type 2(proportional) |
;eax - x |
;ebx - y |
;ecx - color |
;edx - symbol |
;edi - force? |
;result - eax=eax+sym_size |
pop edx |
jmp .loop |
.font2: |
pushad |
call [disable_mouse] |
shl edx,1 |
mov esi,9 |
add edx, edx |
lea ebp,[0x3EC00+4*edx+edx+1] |
.symloop: |
push 9 |
movzx esi, byte [ebp-1] |
.symloop2: |
mov dl, byte [ebp] |
push esi |
mov dl,byte [ebp] |
xor esi,esi |
.pixloop: |
test dl,1 |
jz .nopix |
.pixloop2: |
shr dl, 1 |
jnc .nopix2 |
call [putpixel] |
.nopix: |
shr dl,1 |
inc esi |
jmp .pixloop2cont |
.nopix2: |
test ecx, 0x40000000 |
jz .pixloop2cont |
push ecx |
mov ecx, [esp+12+4] |
call [putpixel] |
pop ecx |
.pixloop2cont: |
inc eax |
cmp esi,8 |
jl .pixloop |
sub eax,8 |
dec esi |
jnz .pixloop2 |
pop esi |
sub eax, esi |
inc ebx |
pop esi |
inc ebp |
dec esi |
jnz .symloop |
movzx edx,byte [ebp-10] |
add [esp+32-4],edx |
dec dword [esp] |
jnz .symloop2 |
pop eax |
add dword [esp+28], esi |
popad |
inc ebp ;ptr to text |
dec esi ;length |
jnz dtext.lnew |
dtext.output_end: |
pop edx |
jmp .loop |
.end: |
popad |
ret |
ret |
/kernel/branches/gfx_kernel/kernel.asm |
---|
196,15 → 196,10 |
boot_log: |
pushad |
mov edx,esi |
.bll3: inc edx |
cmp [edx],byte 0 |
jne .bll3 |
sub edx,esi |
mov eax,10*65536 |
mov ax,word [boot_y] |
add [boot_y],dword 10 |
mov ebx,0xffffff |
mov ebx,0x80ffffff ; ASCIIZ string with white color |
mov ecx,esi |
mov edi,1 |
call dtext |
1358,9 → 1353,7 |
cmp al,1 ; ecx is a pointer ? |
jne displnl1 |
mov edi,[0x3010] |
mov edi,[edi+TASKDATA.mem_start] |
mov ebx,[edi+ebx] |
mov ebx,[ebx+std_application_base_address] |
displnl1: |
sub esp,64 |
1458,22 → 1451,19 |
add ecx,esp |
add ecx,4 |
mov eax,[esp+64+32-8+4] |
mov ebx,[esp+64+32-12+4] |
push edx ; add window start x & y |
push ebx |
mov edx,[0x3010] |
mov ebx,[edx-twdw+WDATA.box.left] |
shl ebx,16 |
add ebx,[edx-twdw+WDATA.box.top] |
add eax,ebx |
pop ebx |
pop edx |
mov edi,0 |
call dtext |
mov ebx,[esp+64+32-12+4] |
and ebx, not 0x80000000 ; force counted string |
mov esi, [esp+64+4+4] |
xor edi,edi |
jmp dtext |
ret |
read_string: |
; eax read_area |
2914,10 → 2904,7 |
add ax,[_skinmargins.top] |
add ax,-3 |
add eax,ebp |
mov ebx,[common_colours+16];0x00FFFFFF |
xor edi,edi |
call dtext |
jmp @f |
jmp .dodraw |
.not_skinned: |
cmp al,1 |
2936,10 → 2923,11 |
mov edx,eax |
mov eax,0x00080007 |
add eax,ebp |
.dodraw: |
mov ebx,[common_colours+16];0x00FFFFFF |
or ebx, 0x80000000 |
xor edi,edi |
call dtext |
jmp @f |
@@: |
;-------------------------------------------------------------- |
4825,6 → 4813,7 |
mov edi,[0x3010] |
mov ebp,[edi-twdw+WDATA.box.left] |
push esi |
mov esi,[0x3000] |
shl esi,8 |
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left] |
4831,6 → 4820,7 |
shl ebp,16 |
add ebp,[edi-twdw+WDATA.box.top] |
add bp,word[esi+0x80000+APPDATA.wnd_clientbox.top] |
pop esi |
add ecx,[edi+TASKDATA.mem_start] |
add eax,ebp |
xor edi,edi |
/kernel/trunk/boot/shutdown.inc |
---|
507,7 → 507,7 |
db '2) APM - POWEROFF ' |
db '3) REBOOT ' |
db '4) RESTART KERNEL ' |
else |
else if lang eq ru |
shutdowntext: |
db "¥§®¯ ᮥ ¢ëª«î票¥ ª®¬¯ìîâ¥à ¨«¨ " |
db ' ' |
515,6 → 515,14 |
db '2) APM - ¢ëª«î票¥ ¯¨â ¨ï ' |
db '3) ¥à¥§ £à㧪 á¨á⥬ë ' |
db '4) ¥áâ àâ ï¤à ¨§ ' |
else |
shutdowntext: |
db "SIE KOENNEN DEN COMPUTER NUN AUSSCHALTEN" |
db ' ' |
db '1) RAMDISK AUF DISK SPEICHERN ' |
db '2) APM - AUSSCHALTEN ' |
db '3) NEUSTARTEN ' |
db '4) KERNEL NEU STARTEN ' |
end if |
rosef: |
db 'ROSE TXT' |
/kernel/trunk/core/newproce.inc |
---|
468,6 → 468,7 |
;calculate parameter length |
mov esi,eax |
xor ecx,ecx |
inc ecx ; include terminating null |
.command_line_len: |
cmp byte [esi],0 |
jz .command_line_len_end |
/kernel/trunk/docs/sysfuncs.txt |
---|
188,16 → 188,17 |
* ebx = [coordinate on axis x]*65536 + [coordinate on axis y] |
* ecx = 0xX0RRGGBB, where |
* RR, GG, BB specify text color |
* X specifies the used font: 0=system monospaced, |
* X=ABnn (bits): |
* nn specifies the used font: 0=system monospaced, |
1=system font of variable width |
* A=0 - output esi characters, A=1 - output ASCIIZ-string |
* B=1 - fill background with the color edi |
* edx = pointer to the beginning of the string |
* esi = length of the string, must not exceed 255 |
* esi = for A=0 length of the string, must not exceed 255; |
for A=1 is ignored |
Returned value: |
* function does not return value |
Remarks: |
* Function outputs either first (esi and 0xFF) characters or |
all characters before (but not including) terminating zero |
(for ASCIIZ-strings) depending on what occurs first. |
* First system font is read out at loading from the file char.mt, |
second - from char2.mt. |
* Both fonts have height 9 pixels, width of the monospaced font |
424,7 → 425,7 |
=============== Function 12 - begin/end window redraw. =============== |
====================================================================== |
------------ Subfunction 1 - begin redraw of the window. ------------- |
---------------- Subfunction 1 - begin window redraw. ---------------- |
Parameters: |
* eax = 12 - function number |
* ebx = 1 - subfunction number |
431,7 → 432,7 |
Returned value: |
* function does not return value |
------------- Subfunction 2 - end redraw of the window. -------------- |
----------------- Subfunction 2 - end window redraw. ----------------- |
Parameters: |
* eax = 12 - function number |
* ebx = 2 - subfunction number |
2054,7 → 2055,12 |
* áèòû 22-31 reserved and must be set to 0 |
* ecx = number (if bl=0) or pointer (if bl=1) |
* edx = [coordinate on axis x]*65536 + [coordinate on axis y] |
* esi = 0xN0RRGGBB, RRGGBB=color, N=font (0/1) |
* esi = 0xX0RRGGBB: |
* RR, GG, BB specify the color |
* X = ABnn (bits) |
* nn = font (0/1) |
* A is ignored |
* B=1 - fill background with the color edi |
Returned value: |
* function does not return value |
Remarks: |
/kernel/trunk/fs/fat32.inc |
---|
7,6 → 7,7 |
;; Copyright 2002 Paolo Minazzi, paolo.minazzi@inwind.it ;; |
;; ;; |
;; See file COPYING for details ;; |
;; 20.08.2006 LFN set file size (truncate/extend) - diamond ;; |
;; 17.08.2006 LFN write/append to file - diamond ;; |
;; 23.06.2006 LFN start application - diamond ;; |
;; 15.06.2006 LFN get/set file/folder info - diamond ;; |
/kernel/trunk/gui/font.inc |
---|
1,119 → 1,107 |
align 4 |
dtext: ; Text String Output (rw by Johnny_B[john@kolibrios.org]) |
; eax x & y |
; ebx font ( 0xX0000000 ) & color ( 0x00RRGGBB ) |
; ebx style ( 0xX0000000 ) & color ( 0x00RRGGBB ) |
; X = ABnnb: |
; nn = font |
; A = 0 <=> output edx characters; otherwise output ASCIIZ string |
; B = 1 <=> fill background with color esi |
; ecx start of text |
; edx length |
; edi 1 force |
pushad |
call [disable_mouse] |
mov esi,edx ;esi=length |
mov ebp,ecx ;ebp=ptr to text |
mov ebp, ecx ; ebp=pointer to text |
mov ecx,ebx ;ecx=color |
movzx ebx,ax ;ebx=y |
shr eax,16 ;eax=x |
and esi, 0xFF ;limit of text = 255 symbols |
dtext.lnew: |
test esi, esi ; zero length ? |
jnz @f |
jmp dtext.output_end |
movsx ebx, ax ; ebx=y |
sar eax, 16 ; eax=x |
cmp edx, 255 |
jb .loop |
mov edx, 255 |
.loop: |
test ecx, ecx |
js .test_asciiz |
dec edx |
js .end |
jmp @f |
.test_asciiz: |
cmp byte [ebp], 0 |
jz .end |
@@: |
movzx edx,byte [ebp] ;edx=ascii code |
test edx,edx |
jz dtext.output_end |
push edx |
movzx edx, byte [ebp] |
inc ebp |
test ecx,0x10000000 |
jnz dtext.letnew2 |
align 4 |
.letnew: |
drawletter: ;output char of type 1(monotype) |
;eax - x |
;ebx - y |
;ecx - color |
;edx - ascii code |
jnz .font2 |
pushad |
call [disable_mouse] |
mov esi,9 |
lea ebp,[0x3F600+8*edx+edx] |
.symloop: |
push esi |
.symloop1: |
mov dl,byte [ebp] |
mov esi,8 |
.pixloop: |
test dl,1 |
jz .nopix |
or dl, 1 shl 6 |
.pixloop1: |
shr dl, 1 |
jz .pixloop1end |
jnc .nopix |
call [putpixel] |
jmp .pixloop1cont |
.nopix: |
shr dl,1 |
test ecx, 0x40000000 |
jz .pixloop1cont |
push ecx |
mov ecx, [esp+4+4] |
call [putpixel] |
pop ecx |
.pixloop1cont: |
inc eax |
dec esi |
jnz .pixloop |
sub eax,8 |
jmp .pixloop1 |
.pixloop1end: |
sub eax, 6 |
inc ebx |
inc ebp |
pop esi |
dec esi |
jnz .symloop |
jnz .symloop1 |
popad |
add eax,6 |
inc ebp ;ptr to text |
dec esi ;length |
jnz dtext.lnew |
jmp dtext.output_end |
dtext.letnew2: |
align 4 |
drawletter2: ;output char of type 2(proportional) |
;eax - x |
;ebx - y |
;ecx - color |
;edx - symbol |
;edi - force? |
;result - eax=eax+sym_size |
pop edx |
jmp .loop |
.font2: |
pushad |
call [disable_mouse] |
shl edx,1 |
mov esi,9 |
add edx, edx |
lea ebp,[0x3EC00+4*edx+edx+1] |
.symloop: |
push 9 |
movzx esi, byte [ebp-1] |
.symloop2: |
mov dl, byte [ebp] |
push esi |
mov dl,byte [ebp] |
xor esi,esi |
.pixloop: |
test dl,1 |
jz .nopix |
.pixloop2: |
shr dl, 1 |
jnc .nopix2 |
call [putpixel] |
.nopix: |
shr dl,1 |
inc esi |
jmp .pixloop2cont |
.nopix2: |
test ecx, 0x40000000 |
jz .pixloop2cont |
push ecx |
mov ecx, [esp+12+4] |
call [putpixel] |
pop ecx |
.pixloop2cont: |
inc eax |
cmp esi,8 |
jl .pixloop |
sub eax,8 |
dec esi |
jnz .pixloop2 |
pop esi |
sub eax, esi |
inc ebx |
pop esi |
inc ebp |
dec esi |
jnz .symloop |
movzx edx,byte [ebp-10] |
add [esp+32-4],edx |
dec dword [esp] |
jnz .symloop2 |
pop eax |
add dword [esp+28], esi |
popad |
inc ebp ;ptr to text |
dec esi ;length |
jnz dtext.lnew |
dtext.output_end: |
pop edx |
jmp .loop |
.end: |
popad |
ret |
ret |
/kernel/trunk/kernel.asm |
---|
194,15 → 194,10 |
boot_log: |
pushad |
mov edx,esi |
.bll3: inc edx |
cmp [edx],byte 0 |
jne .bll3 |
sub edx,esi |
mov eax,10*65536 |
mov ax,word [boot_y] |
add [boot_y],dword 10 |
mov ebx,0xffffff |
mov ebx,0x80ffffff ; ASCIIZ string with white color |
mov ecx,esi |
mov edi,1 |
call dtext |
1313,9 → 1308,7 |
cmp al,1 ; ecx is a pointer ? |
jne displnl1 |
mov edi,[0x3010] |
mov edi,[edi+TASKDATA.mem_start] |
mov ebx,[edi+ebx] |
mov ebx,[ebx+std_application_base_address] |
displnl1: |
sub esp,64 |
1420,22 → 1413,19 |
add ecx,esp |
add ecx,4 |
mov eax,[esp+64+32-8+4] |
mov ebx,[esp+64+32-12+4] |
push edx ; add window start x & y |
push ebx |
mov edx,[0x3010] |
mov ebx,[edx-twdw+WDATA.box.left] |
shl ebx,16 |
add ebx,[edx-twdw+WDATA.box.top] |
add eax,ebx |
pop ebx |
pop edx |
mov edi,0 |
call dtext |
mov ebx,[esp+64+32-12+4] |
and ebx, not 0x80000000 ; force counted string |
mov esi, [esp+64+4+4] |
xor edi,edi |
jmp dtext |
ret |
read_string: |
; eax read_area |
2900,10 → 2890,7 |
add ax,[_skinmargins.top] |
add ax,-3 |
add eax,ebp |
mov ebx,[common_colours+16];0x00FFFFFF |
xor edi,edi |
call dtext |
jmp @f |
jmp .dodraw |
.not_skinned: |
cmp al,1 |
2922,10 → 2909,11 |
mov edx,eax |
mov eax,0x00080007 |
add eax,ebp |
.dodraw: |
mov ebx,[common_colours+16];0x00FFFFFF |
or ebx, 0x80000000 |
xor edi,edi |
call dtext |
jmp @f |
@@: |
;-------------------------------------------------------------- |
4809,6 → 4797,7 |
mov edi,[0x3010] |
mov ebp,[edi-twdw+WDATA.box.left] |
push esi |
mov esi,[0x3000] |
shl esi,8 |
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left] |
4815,6 → 4804,7 |
shl ebp,16 |
add ebp,[edi-twdw+WDATA.box.top] |
add bp,word[esi+0x80000+APPDATA.wnd_clientbox.top] |
pop esi |
add ecx,[edi+TASKDATA.mem_start] |
add eax,ebp |
xor edi,edi |
/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 |