diff --git a/programs/system/RunOD/RunOD.asm b/programs/system/RunOD/RunOD.asm index b25e677d98..6df642c730 100644 --- a/programs/system/RunOD/RunOD.asm +++ b/programs/system/RunOD/RunOD.asm @@ -10,7 +10,7 @@ REDRAW_EVENT equ 1 KEY_EVENT equ 2 BUTTON_EVENT equ 3 MOUSE_EVENT equ 6 - + BUTTON_RUN equ 10 BUTTON_BROWSE equ 20 @@ -23,7 +23,9 @@ program.stack dd end_ + STACK_SIZE program.params dd 0 program.path dd 0 -; ======================================================================= ; +include 'lang.inc' + +; ======================================================================= ; start_: ; set.event mov eax, 40 @@ -68,7 +70,7 @@ start_: call getprocaddress mov [opendialog_start], eax - + ; memory.allocate: mov eax, 68 mov ebx, 12 @@ -76,13 +78,13 @@ start_: int 64 mov [od.procinfo], eax - + add eax, 1024 - mov [od.filename_area], eax - + mov [od.filename_area], eax + add eax, 4096 - 1024 mov [od.opendir_path], eax - + add eax, 4096 mov [od.openfile_path], eax @@ -105,7 +107,7 @@ start_: ; skin.height mov eax, 48 mov ebx, 4 - int 64 + int 64 add eax, 64 mov [window.height], eax @@ -126,10 +128,10 @@ start_: mov eax, [od.openfile_path] mov [edit1.text], eax - - + + call on_redraw -; ----------------------- ; +; ----------------------- ; .loop: ; wait.event mov eax, 10 @@ -138,7 +140,7 @@ start_: jne .check_key call on_redraw jmp .loop -; ----------------------- ; +; ----------------------- ; .check_key: cmp eax, KEY_EVENT jne .check_button @@ -148,12 +150,12 @@ start_: jne .no_key_enter call on_button_run jmp .loop -; ----------------------- ; +; ----------------------- ; .no_key_enter: push edit1 call [edit_box_key] jmp .loop -; ----------------------- ; +; ----------------------- ; .check_button: cmp eax, BUTTON_EVENT jne .check_mouse @@ -165,19 +167,19 @@ start_: ; program.terminate or eax, -1 int 64 -; ----------------------- ; +; ----------------------- ; .check_button_run: cmp ah, BUTTON_RUN jne .check_button_browse call on_button_run jmp .loop -; ----------------------- ; +; ----------------------- ; .check_button_browse: cmp ah, BUTTON_BROWSE jne .loop call on_button_browse jmp .loop -; ----------------------- ; +; ----------------------- ; .check_mouse: cmp eax, MOUSE_EVENT jne .loop @@ -186,7 +188,7 @@ start_: jmp .loop -; ======================================================================= ; +; ======================================================================= ; on_button_run: push dword[edit1.text] call extractrunpathandparams @@ -195,67 +197,67 @@ on_button_run: mov eax, 70 mov ebx, file_info int 64 - + mov dl, byte[lastendpath] mov ecx, [ptrlastendpath] - mov [ecx], dl + mov [ecx], dl test eax, eax jnge .error mov [runresult], dword sz_Program_run_successfully jmp .exit - + .error: -; ----------------------- ; -.5: +; ----------------------- ; +.5: cmp al, -5 jne .31 mov [runresult], dword sz_File_not_found jmp .exit -; ----------------------- ; -.31: +; ----------------------- ; +.31: cmp al, -31 jne .32 mov [runresult], dword sz_File_is_not_executable jmp .exit -; ----------------------- ; -.32: +; ----------------------- ; +.32: cmp al, -32 jne .10 mov [runresult], dword sz_Too_many_processes jmp .exit -; ----------------------- ; -.10: +; ----------------------- ; +.10: cmp al, -10 jne .30 mov [runresult], dword sz_Access_denied jmp .exit -; ----------------------- ; -.30: +; ----------------------- ; +.30: cmp al, -30 jne .unknown mov [runresult], dword sz_Out_of_memory - jmp .exit -; ----------------------- ; + jmp .exit +; ----------------------- ; .unknown: - mov [runresult], dword sz_Unknown_error -; ----------------------- ; + mov [runresult], dword sz_Unknown_error +; ----------------------- ; .exit: call on_redraw - ret + ret -; ======================================================================= ; +; ======================================================================= ; on_button_browse: push od call [opendialog_start] - mov eax, [od.status] + mov eax, [od.status] test eax, eax je .exit ;======== if space exist in filepath, then quote filepath mov eax, [od.openfile_path] -; ----------------------- ; +; ----------------------- ; .check_space: cmp [eax], byte 0 je .no_space @@ -264,14 +266,14 @@ on_button_browse: inc eax jmp .check_space .space: -; ----------------------- ; +; ----------------------- ; .find_end_zero: inc eax cmp [eax], byte 0 jne .find_end_zero mov [eax + 2], byte 0 mov [eax + 1], byte 34 ; quote -; ----------------------- ; +; ----------------------- ; .shift_path: dec eax @@ -288,12 +290,12 @@ on_button_browse: push dword[od.openfile_path] push edit1 call [edit_box_set_text] -; ----------------------- ; +; ----------------------- ; .exit: ret -; ======================================================================= ; +; ======================================================================= ; on_redraw: ; redraw.start mov eax, 12 @@ -304,19 +306,19 @@ on_redraw: mov ebx, 3 mov ecx, sc mov edx, 40 - int 64 + int 64 mov eax, [sc.work_graph] mov [edit1.shift_color], eax mov eax, [sc.work_graph] - mov [edit1.focus_border_color], eax + mov [edit1.focus_border_color], eax mov eax, [sc.frames] mov [edit1.blur_border_color], eax mov eax, [sc.work_text] - mov [edit1.text_color], eax + mov [edit1.text_color], eax ; draw.window xor eax, eax @@ -330,7 +332,7 @@ on_redraw: or edx, 34000000h mov edi, sz_run int 64 - + mov eax, [window.width] sub eax, 318 shr eax, 1 @@ -340,8 +342,8 @@ on_redraw: push sz_Type_name_of_program push dword [sc.work_text] call draw.text - -; ====================| browse button |==================== + +; ====================| browse button |==================== push 20 push 5 push 38 @@ -355,7 +357,7 @@ on_redraw: push dword [sc.work_button_text] call draw.text -; ====================| run button |==================== +; ====================| run button |==================== push 10 mov eax, [window.width] sub eax, 57 @@ -372,8 +374,8 @@ on_redraw: push sz_run push dword [sc.work_button_text] call draw.text - ; ===================================================== - + ; ===================================================== + mov eax, 57 push eax mov eax, [window.height] @@ -385,7 +387,7 @@ on_redraw: push edit1 call [edit_box_draw] - + ; redraw.finish mov eax, 12 mov ebx, 2 @@ -394,22 +396,22 @@ on_redraw: ret -; ======================================================================= ; +; ======================================================================= ; extractrunpathandparams: xor ecx, ecx mov eax, [esp + 4] mov [runpath], eax - movzx eax, byte [eax] + movzx eax, byte [eax] cmp eax, 34 jne .start_without_quote inc ecx -; ----------------------- ; +; ----------------------- ; .loop1: - mov eax, [runpath] - movzx eax, byte [eax + ecx] + mov eax, [runpath] + movzx eax, byte [eax + ecx] cmp eax, 34 jne .not_quote @@ -421,25 +423,25 @@ extractrunpathandparams: mov [ptrlastendpath], eax mov [lastendpath], byte 34 inc ecx -; ----------------------- ; -.skip_space1: +; ----------------------- ; +.skip_space1: mov eax, [runpath] - movzx eax, byte [eax + ecx] + movzx eax, byte [eax + ecx] cmp al, 32 jne .skipped1 inc ecx jmp .skip_space1 -; ----------------------- ; +; ----------------------- ; .skipped1: mov eax, [runpath] add eax, ecx mov [runparams], eax inc dword [runpath] - jmp .exit -; ----------------------- ; -.not_quote: + jmp .exit +; ----------------------- ; +.not_quote: mov eax, [runpath] - movzx eax, byte [eax + ecx] + movzx eax, byte [eax + ecx] test eax, eax jne .not_zero1 @@ -450,17 +452,17 @@ extractrunpathandparams: add eax, ecx mov [ptrlastendpath], eax mov [lastendpath], byte 0 - jmp .exit -; ----------------------- ; -.not_zero1: + jmp .exit +; ----------------------- ; +.not_zero1: inc ecx jmp .loop1 -; ----------------------- ; +; ----------------------- ; .start_without_quote: -; ----------------------- ; -.loop2: +; ----------------------- ; +.loop2: mov eax, [runpath] - movzx eax, byte [eax + ecx] + movzx eax, byte [eax + ecx] cmp eax, 32 jne .not_space @@ -472,24 +474,24 @@ extractrunpathandparams: mov [ptrlastendpath], eax mov [lastendpath], byte 32 inc ecx -; ----------------------- ; -.skip_space2: +; ----------------------- ; +.skip_space2: mov eax, [runpath] - movzx eax, byte [eax + ecx] + movzx eax, byte [eax + ecx] cmp al, 32 jne .skipped2 inc ecx jmp .skip_space2 -; ----------------------- ; -.skipped2: +; ----------------------- ; +.skipped2: mov eax, [runpath] add eax, ecx mov [runparams], eax - jmp .exit -; ----------------------- ; -.not_space: + jmp .exit +; ----------------------- ; +.not_space: mov eax, [runpath] - movzx eax, byte [eax + ecx] + movzx eax, byte [eax + ecx] test eax, eax jne .not_zero2 @@ -500,16 +502,16 @@ extractrunpathandparams: add eax, ecx mov [ptrlastendpath], eax mov [lastendpath], byte 0 - jmp .exit -; ----------------------- ; -.not_zero2: + jmp .exit +; ----------------------- ; +.not_zero2: inc ecx jmp .loop2 -; ----------------------- ; +; ----------------------- ; .exit: ret 4 -; ======================================================================= ; +; ======================================================================= ; draw.button: mov eax, 8 mov ebx, [esp + 16] @@ -522,7 +524,7 @@ draw.button: mov esi, [sc.work_button] int 64 ret 20 -; ======================================================================= ; +; ======================================================================= ; draw.text: mov eax, 4 mov ebx, [esp + 16] @@ -533,21 +535,21 @@ draw.text: mov edx, [esp + 8] int 64 ret 16 -; ======================================================================= ; +; ======================================================================= ; load.library: mov eax, 68 mov ebx, 19 mov ecx, [esp + 4] int 64 ret 4 -; ======================================================================= ; +; ======================================================================= ; getprocaddress: mov edx, [esp + 8] ; hlib xor eax, eax test edx, edx ; If hlib = 0 then goto .end jz .end ; ----------------------- ; -.next: +.next: cmp [edx], dword 0 ; If end of export table then goto .end jz .end @@ -555,7 +557,7 @@ getprocaddress: mov esi, [edx] mov edi, [esp + 4] ; name ; ----------------------- ; -.next_: +.next_: lodsb scasb jne .fail @@ -563,17 +565,17 @@ getprocaddress: jnz .next_ jmp .ok ; ----------------------- ; -.fail: +.fail: add edx, 8 jmp .next ; ----------------------- ; .ok: ; return address mov eax, [edx + 4] ; ----------------------- ; -.end: +.end: ret 8 - + file_info: dd 7 @@ -583,20 +585,20 @@ runparams: dd 0 dd 0 db 0 -runpath: - dd 0 - - +runpath: + dd 0 + + screen: .height dw 0 .width dw 0 - + window: .left dd 0 .top dd 0 .width dd 0 .height dd 0 - + box_lib dd 0 edit1: @@ -619,13 +621,13 @@ edit1: .cl_curs_y dd 0 .shift dd 0 .shift_old dd 0 - + edit_box_draw dd 0 edit_box_key dd 0 edit_box_mouse dd 0 edit_box_set_text dd 0 - -sc: + +sc: .frames dd 0 .grab dd 0 .grab_button dd 0 @@ -636,10 +638,10 @@ sc: .work_button_text dd 0 .work_text dd 0 .work_graph dd 0 - + proc_lib dd 0 - -od: + +od: .mode dd 0 .procinfo dd 0 .com_area_name dd sz_FFFFFFFF_open_dialog @@ -656,7 +658,7 @@ od: .x_start dw 0 .y_size dw 414 .y_start dw 0 - + opendialog_init dd 0 opendialog_start dd 0 @@ -664,8 +666,8 @@ filefilter dd 0 runresult dd sz_empty lastendpath db 0 -ptrlastendpath dd 0 - +ptrlastendpath dd 0 + sz_empty db 0 sz_box_lib db "/sys/lib/box_lib.obj",0 @@ -681,19 +683,34 @@ sz_FFFFFFFF_open_dialog db "FFFFFFFF_open_dialog",0 sz_SYS db "/sys",0 sz_opendial_path db "/sys/File managers/opendial",0 -sz_Program_run_successfully db "Program run successfully",0 -sz_File_not_found db "File not found",0 -sz_File_is_not_executable db "File is not executable",0 -sz_Too_many_processes db "Too many processes",0 -sz_Access_denied db "Access denied",0 -sz_Out_of_memory db "Out of memory",0 -sz_Unknown_error db "Unknown error",0 +if lang eq it + sz_Program_run_successfully db "Programma eseguito correttamente",0 + sz_File_not_found db "File non trovato",0 + sz_File_is_not_executable db "File non eseguibile",0 + sz_Too_many_processes db "Troppi processi",0 + sz_Access_denied db "Accesso negato",0 + sz_Out_of_memory db "Out of memory",0 + sz_Unknown_error db "Errore sconosciuto",0 -sz_Type_name_of_program db "Type name of program, and Kolibri will run it for you",0 + sz_Type_name_of_program db "Digita il nome del programma per eseguirlo",0 -sz_run db " Run ",0 -sz_browse db " Browse ",0 + sz_run db "Esegui ",0 + sz_browse db " Naviga",0 -; ======================================================================= ; +else + sz_Program_run_successfully db "Program run successfully",0 + sz_File_not_found db "File not found",0 + sz_File_is_not_executable db "File is not executable",0 + sz_Too_many_processes db "Too many processes",0 + sz_Access_denied db "Access denied",0 + sz_Out_of_memory db "Out of memory",0 + sz_Unknown_error db "Unknown error",0 + + sz_Type_name_of_program db "Type name of program, and Kolibri will run it for you",0 + + sz_run db " Run ",0 + sz_browse db " Browse ",0 +end if +; ======================================================================= ; end_: diff --git a/programs/system/RunOD/makefile b/programs/system/RunOD/makefile new file mode 100644 index 0000000000..a2e6d7c7f3 --- /dev/null +++ b/programs/system/RunOD/makefile @@ -0,0 +1,19 @@ +#!gmake + +# Macro +FASM=/opt/bin/fasm +KPACK=/opt/bin/kpack +LANG=lang.inc +FILE=RunOD +SOURCE=${FILE}.asm +OUT=${FILE}.bin + +en: + echo "lang fix en" > ${LANG} + ${FASM} ${SOURCE} ${OUT} +it: + echo "lang fix it" > ${LANG} + ${FASM} ${SOURCE} ${OUT} + +clean: + rm -f ${LANG} ${OUT} diff --git a/programs/system/rdsave/trunk/makefile b/programs/system/rdsave/trunk/makefile new file mode 100644 index 0000000000..36af6ed2bf --- /dev/null +++ b/programs/system/rdsave/trunk/makefile @@ -0,0 +1,25 @@ +#!gmake + +# Macro +FASM=/opt/bin/fasm +KPACK=/opt/bin/kpack +LANG=lang.inc +FILE=rdsave +SOURCE=${FILE}.asm +OUT=${FILE}.bin + +en: + echo "lang fix en" > ${LANG} + ${FASM} ${SOURCE} ${OUT} +ru: + echo "lang fix ru" > ${LANG} + ${FASM} ${SOURCE} ${OUT} +it: + echo "lang fix it" > ${LANG} + ${FASM} ${SOURCE} ${OUT} +et: + echo "lang fix et" > ${LANG} + ${FASM} ${SOURCE} ${OUT} + +clean: + rm -f ${LANG} ${OUT} diff --git a/programs/system/rdsave/trunk/rdsave.asm b/programs/system/rdsave/trunk/rdsave.asm index 3967aa8c3e..4085588f20 100644 --- a/programs/system/rdsave/trunk/rdsave.asm +++ b/programs/system/rdsave/trunk/rdsave.asm @@ -20,7 +20,7 @@ include '..\..\..\macros.inc' appname equ 'RDsave ' version equ '1.3' - + use32 ; включить 32-битный режим ассемблера org 0x0 ; адресация с нуля @@ -96,7 +96,7 @@ still: dec eax ; перерисовать окно? jz red ; если да - на метку red - dec eax + dec eax jz key dec eax jz button @@ -242,7 +242,7 @@ draw_window: ;отрисовка кнопок sub ebx,4 shl 16 sub ecx,4 shl 16 - mcall 8,,,5,[sc.work_button] + mcall 8,,,5,[sc.work_button] sub ecx,40 shl 16 dec edx @@ -332,7 +332,7 @@ key_help_correct: mov cx,13 mcall 13,,,[sc.work_graph] popa - mcall + mcall pop ebx ret ;--------------------------------------------------------------------- @@ -386,6 +386,21 @@ error10 db 'Juurdep error11 db 'Seadme viga',0 aUnknownError db 'Tundmatu viga',0 ;--------------------------------------------------------------------- +else if lang eq it +save db 'Salva',0 +select db 'Seleziona',0 +label1 db 'Seleziona cosa salvare:',0 +label2 db ' oppure seleziona il file:',0 +label3 db 'Tutte le cartelle devono esistere',0 +ok db 'Il RAM-drivet e stato salvato',0 +error3 db 'Filesystem sconosciuto',0 +error5 db 'Percorso non valido',0 +error8 db 'Disco pieno',0 +error9 db 'Tabella FAT corrotta',0 +error10 db 'Accesso negato',0 +error11 db 'Errore di device',0 +aUnknownError db 'Errore sconosciuto',0 +;--------------------------------------------------------------------- else save db ' Save',0 select db ' Select',0 @@ -483,7 +498,7 @@ aOpenDialog_Start db 'OpenDialog_start',0 ;aOpenDialog_Version db 'Version_OpenDialog',0 ;--------------------------------------------------------------------- align 4 -Box_lib_import: +Box_lib_import: ;init_lib dd a_init ;version_lib dd a_version diff --git a/programs/system/refrscrn/makefile b/programs/system/refrscrn/makefile new file mode 100644 index 0000000000..4eebd76cec --- /dev/null +++ b/programs/system/refrscrn/makefile @@ -0,0 +1,16 @@ +#!gmake + +# Macro +FASM=/opt/bin/fasm +KPACK=/opt/bin/kpack +LANG=lang.inc +FILE=refrscrn +SOURCE=${FILE}.asm +OUT=${FILE}.bin + +en: + echo "lang fix en" > ${LANG} + ${FASM} ${SOURCE} ${OUT} + +clean: + rm -f ${LANG} ${OUT} diff --git a/programs/system/run/trunk/makefile b/programs/system/run/trunk/makefile new file mode 100644 index 0000000000..416dff685a --- /dev/null +++ b/programs/system/run/trunk/makefile @@ -0,0 +1,22 @@ +#!gmake + +# Macro +FASM=/opt/bin/fasm +KPACK=/opt/bin/kpack +LANG=lang.inc +FILE=run +SOURCE=${FILE}.asm +OUT=${FILE}.bin + +en: + echo "lang fix en" > ${LANG} + ${FASM} ${SOURCE} ${OUT} +ru: + echo "lang fix ru" > ${LANG} + ${FASM} ${SOURCE} ${OUT} +it: + echo "lang fix it" > ${LANG} + ${FASM} ${SOURCE} ${OUT} + +clean: + rm -f ${LANG} ${OUT} diff --git a/programs/system/run/trunk/run.asm b/programs/system/run/trunk/run.asm index 01b8bacd54..7d97092924 100644 --- a/programs/system/run/trunk/run.asm +++ b/programs/system/run/trunk/run.asm @@ -11,7 +11,7 @@ include 'txtbut.inc' include '../../../macros.inc' include 'run.mac' include 'lang.inc' -use32 +use32 org 0x0 db 'MENUET01' dd 0x1 @@ -46,7 +46,7 @@ red: push dword [sc.work_graph] pop [input_fn.focus_border_color] call draw_window -still: ;основной обработчик +still: ;основной обработчик mcall 10 ;Ожидать события dec eax jz red @@ -54,7 +54,7 @@ still: ; jz key dec eax jz button -; mouse_edit_box input_fn +; mouse_edit_box input_fn push dword input_fn call [edit_box_mouse] @@ -239,31 +239,44 @@ input_fn edit_box 0,5,5,0xffffff,0x6a9480,0,0xaaaaaa,0,511,fn,mouse_dd,ed_focus+ ;mouse_flag: dd 0x0 input_fn_end: if lang eq ru -hello db 'Введите полный путь к файлу и нажмите Enter',0 -bad_file_sys db 'Неизвестная файловая система',0 ; 3 -file_not_find db 'Файл не найден',0 ; 5 -bad_fat_table db 'Таблица FAT разрушена',0 ; 9 -acces_denyied db 'Доступ запрещен',0 ; 10 -device_error db 'Ошибка устройства',0 ; 11 -out_of_memory db 'Недостаточно памяти',0 ; 30 -file_not_executable db 'Файл не является исполняемым',0 ; 31 -many_processes db 'Слишком много процессов',0 ; 32 -run_ok db 'Программа успешно запущена',0 -grab_text db 'Запуск программы',0 -run_but_text db 'ЗАПУСТИТЬ',0 + hello db 'Введите полный путь к файлу и нажмите Enter',0 + bad_file_sys db 'Неизвестная файловая система',0 ; 3 + file_not_find db 'Файл не найден',0 ; 5 + bad_fat_table db 'Таблица FAT разрушена',0 ; 9 + acces_denyied db 'Доступ запрещен',0 ; 10 + device_error db 'Ошибка устройства',0 ; 11 + out_of_memory db 'Недостаточно памяти',0 ; 30 + file_not_executable db 'Файл не является исполняемым',0 ; 31 + many_processes db 'Слишком много процессов',0 ; 32 + run_ok db 'Программа успешно запущена',0 + grab_text db 'Запуск программы',0 + run_but_text db 'ЗАПУСТИТЬ',0 +else if lang eq it + hello db 'Inserisci percorso completo al file e premi ',0 + bad_file_sys db 'Filesysrem sconosciuto',0 ; 3 + file_not_find db 'File non trovato',0 ; 5 + bad_fat_table db 'Tabella FAT corrotta',0 ; 9 + acces_denyied db 'Accesso negato',0 ; 10 + device_error db 'Device error',0 ; 11 + out_of_memory db 'Out of memory',0 ; 30 + file_not_executable db 'File non eseguibile',0 ; 31 + many_processes db 'Troppo processi',0 ; 32 + run_ok db 'Il programma eseguito correttamente',0 + grab_text db 'RUN',0 + run_but_text db 'Esegui',0 else -hello db 'Enter full path to file and press ',0 -bad_file_sys db 'Unknown file system',0 ; 3 -file_not_find db 'File not found',0 ; 5 -bad_fat_table db 'FAT table corrupted',0 ; 9 -acces_denyied db 'Access denied',0 ; 10 -device_error db 'Device error',0 ; 11 -out_of_memory db 'Out of memory',0 ; 30 -file_not_executable db 'File is not executable',0 ; 31 -many_processes db 'Too many processes',0 ; 32 -run_ok db 'The program was started successfully',0 -grab_text db 'RUN',0 -run_but_text db 'RUN',0 + hello db 'Enter full path to file and press ',0 + bad_file_sys db 'Unknown file system',0 ; 3 + file_not_find db 'File not found',0 ; 5 + bad_fat_table db 'FAT table corrupted',0 ; 9 + acces_denyied db 'Access denied',0 ; 10 + device_error db 'Device error',0 ; 11 + out_of_memory db 'Out of memory',0 ; 30 + file_not_executable db 'File is not executable',0 ; 31 + many_processes db 'Too many processes',0 ; 32 + run_ok db 'The program was started successfully',0 + grab_text db 'RUN',0 + run_but_text db 'RUN',0 end if status dd hello @@ -286,7 +299,7 @@ head_f_l db 'System error',0 err_message_import db 'Error on load import library box_lib.obj',0 end if -myimport: +myimport: edit_box_draw dd aEdit_box_draw edit_box_key dd aEdit_box_key