Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 1605 → Rev 1606

/programs/system/rdsave/trunk/build.sh
0,0 → 1,13
#!/bin/bash
# This script does for linux the same as build.bat for DOS,
# it compiles the KoOS kernel, hopefully ;-)
 
echo "lang fix en"
echo "lang fix en" > lang.inc
fasm -m 16384 rdsave.asm rdsave
rm -f lang.inc
exit 0
 
 
 
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/programs/system/rdsave/trunk/build_en.bat
1,5 → 1,6
@erase lang.inc
@echo lang fix en >lang.inc
@fasm rdsave.asm rdsave
@kpack rdsave
@erase lang.inc
@pause
/programs/system/rdsave/trunk/build_et.bat
1,5 → 1,6
@erase lang.inc
@echo lang fix et >lang.inc
@fasm rdsave.asm rdsave
@kpack rdsave
@erase lang.inc
@pause
/programs/system/rdsave/trunk/build_ru.bat
1,5 → 1,6
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm rdsave.asm rdsave
@kpack rdsave
@erase lang.inc
@pause
/programs/system/rdsave/trunk/rdsave.asm
1,6 → 1,12
;
; RDsave ¤«ï Kolibri (0.6.5.0 ¨ áâ àè¥)
;
; version: 1.3
; last update: 08/09/2010
; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: select path with OpenDialog,
; keys 1,2,3,4 for select options
;---------------------------------------------------------------------
; Mario79 2005
; Heavyiron 12.02.2007
; <Lrz> 11.05.2009 - ¤«ï à ¡®âë ­ã¦­  á¨á⥬­ ï ¡¨¡«¨®â¥ª  box_lib.obj
11,7 → 17,7
include '..\..\..\macros.inc'
 
appname equ 'RDsave '
version equ '1.2'
version equ '1.3'
use32 ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
org 0x0 ;  ¤à¥á æ¨ï á ­ã«ï
19,9 → 25,9
db 'MENUET01' ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
dd 0x01 ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
dd START ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
dd I_END ; à §¬¥à ¯à®£à ¬¬ë
dd IM_END ; à §¬¥à ¯à®£à ¬¬ë
dd I_END ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
dd I_END ;  ¤à¥á ¢¥à設ë áâíª 
dd stacktop ;  ¤à¥á ¢¥à設ë áâíª 
dd 0x0 ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
dd cur_dir_path
 
39,28 → 45,50
;---------------------------------------------------------------------
align 4
START:
sys_load_library library_name, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
mcall 68,11
 
load_libraries l_libs_start,end_l_libs
 
cmp eax,-1
jz close
 
mov edi,filename_area
mov esi,start_temp_file_name
xor eax,eax
cld
@@:
lodsb
stosb
test eax,eax
jnz @b
 
mov eax, 40
mov ebx, 100111b
mcall
 
mov edi,fname_buf
mov esi,path4
xor eax,eax
cld
@@:
lodsb
stosb
test eax,eax
jnz @b
 
;OpenDialog initialisation
push dword OpenDialog_data
call [OpenDialog_Init]
 
; prepare for PathShow
push dword PathShow_data_1
call [PathShow_prepare]
 
mcall 40,100111b
red: ; ¯¥à¥à¨á®¢ âì ®ª­®
mov eax,48
mov ebx,3
mov ecx,sc
mov edx,sizeof.system_colors
mcall
edit_boxes_set_sys_color editbox,editbox_end,sc
mcall 48,3,sc,sizeof.system_colors
 
call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
 
;---------------------------------------------------------------------
;--- –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰ ----------------------------------------
;---------------------------------------------------------------------
 
still:
mcall 10
 
71,17 → 99,10
dec eax
jz button
 
mouse:
; mouse_edit_box editbox
push dword editbox
call [edit_box_mouse]
 
jmp still
;---------------------------------------------------------------------
button:
mov al,17 ; ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
mcall
 
mcall 17 ; ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
cmp ah,1 ; ª­®¯ª  á id=1("§ ªàëâì")?
jne noclose
close:
106,23 → 127,36
mov ecx, path3
cmp ah, 4
je doit
mov ecx, path4
 
; invoke OpenDialog
push dword OpenDialog_data
call [OpenDialog_Start]
cmp [OpenDialog_data.status],1
jne still
 
; prepare for PathShow
push dword PathShow_data_1
call [PathShow_prepare]
 
call draw_PathShow
 
mov ecx,fname_buf ;path4
doit:
pop eax
mcall
call check_for_error
jmp still
 
;---------------------------------------------------------------------
key:
mov al,2
mcall
; key_edit_box editbox
push dword editbox
call [edit_box_key]
 
jmp still
 
 
mcall 2
cmp ah,0x31
jb still
cmp ah,0x34
ja still
sub ah,0x30
inc ah
jmp noclose
;---------------------------------------------------------------------
check_for_error: ;Ž¡à ¡®â稪 ®è¨¡®ª
mov ecx, [sc.work_text]
mov edx, ok
152,7 → 186,6
dec eax
jz print
add edx, aUnknownError - error11
 
print:
mov eax,4 ;­ ¤¯¨á¨
mov ebx,20 shl 16 + 148
159,7 → 192,7
or ecx,0x80000000
mcall
ret
 
;---------------------------------------------------------------------
clear_err:
mov eax,13
mov ebx,15 shl 16 + 240
167,20 → 200,24
mov edx,[sc.work]
mcall
ret
 
;---------------------------------------------------------------------
draw_PathShow:
pusha
mcall 13,<8,172>,<110,15>,0xffffff
; draw for PathShow
push dword PathShow_data_1
call [PathShow_draw]
popa
ret
;---------------------------------------------------------------------
;--- Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€ ----------------------------------
;---------------------------------------------------------------------
 
draw_window:
 
mov eax,12 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
mov bl,1 ; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì
mcall
 
mcall 12,1 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì
; ‘Ž‡„€ðŒ ŽŠŽ
xor eax,eax ; äã­ªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª­®
mov ebx,200 shl 16 + 270 ; [x áâ àâ] *65536 + [x à §¬¥à]
mov ebx,200 shl 16 + 300 ; [x áâ àâ] *65536 + [x à §¬¥à]
mov ecx,200 shl 16 + 190 ; [y áâ àâ] *65536 + [y à §¬¥à]
mov edx,[sc.work] ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB,8->color gl
or edx,0x34000000
187,17 → 224,11
mov edi,title ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ€
mcall
 
push dword editbox
call [edit_box_draw]
call draw_PathShow
 
;draw_edit_box editbox ;à¨á®¢ ­¨¥ edit box
;®âà¨á®¢ª  ⥭¥© ª­®¯®ª
mcall 13,<194,60>,<34,15>,0x444444
 
mov al,13 ;®âà¨á®¢ª  ⥭¥© ª­®¯®ª
mov ebx,194 shl 16 + 60
mov ecx,34 shl 16 +15
mov edx,0x444444
mcall
 
add ecx,20 shl 16
mcall
 
206,13 → 237,10
 
add ecx,40 shl 16
mcall
 
mov eax,8 ;®âà¨á®¢ª  ª­®¯®ª
;®âà¨á®¢ª  ª­®¯®ª
sub ebx,4 shl 16
sub ecx,4 shl 16
mov edx,5
mov esi,[sc.work_button]
mcall
mcall 8,,,5,[sc.work_button]
 
sub ecx,40 shl 16
dec edx
225,13 → 253,10
sub ecx,20 shl 16
dec edx
mcall
 
mov al,4 ;­ ¤¯¨á¨
mov ebx,45 shl 16 + 12
; ­ ¤¯¨á¨
mov ecx,[sc.work_text]
or ecx,0x80000000
mov edx,label1
mcall
mcall 4,<45,12>,,label1
 
mov ebx,150 shl 16 + 35
mov edx,path1
259,36 → 284,81
mov edx,save
mcall
 
push edx
mov edx,key_help
call key_help_correct
pop edx
 
add ebx,20
mcall
 
push edx
mov edx,key_help+2
call key_help_correct
pop edx
 
add ebx,20
mcall
 
push edx
mov edx,key_help+4
call key_help_correct
pop edx
 
mov edx,select
add ebx,40
mcall
 
mov al,12 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
mov ebx,2 ; 2, § ª®­ç¨«¨ à¨á®¢ âì
mcall
mov edx,key_help+6
call key_help_correct
 
mcall 12,2 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
; 2, § ª®­ç¨«¨ à¨á®¢ âì
ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
 
 
;---------------------------------------------------------------------
key_help_correct:
push ebx
ror ebx,16
mov bx,270
rol ebx,16
pusha
mov ecx,ebx
sub ebx,3 shl 16
mov bx,13
sub cx,3
shl ecx,16
mov cx,13
mcall 13,,,0xffffff
popa
mcall
pop ebx
ret
;---------------------------------------------------------------------
;--- „€›… Žƒ€ŒŒ› ----------------------------------------------
;---------------------------------------------------------------------
 
title db appname,version,0
 
editbox:
edit1 edit_box 170,10,113,0xffffff,0xaabbcc,0,0,0,512,path4,mouse_dd,ed_focus,26,26
editbox_end:
 
;---------------------------------------------------------------------
PathShow_data_1:
.type dd 0 ;+0
.start_y dw 113 ;+4
.start_x dw 10 ;+6
.font_size_x dw 6 ;+8 ; 6 - for font 0, 8 - for font 1
.area_size_x dw 170 ;+10
.font_number dd 0 ;+12 ; 0 - monospace, 1 - variable
.background_flag dd 0 ;+16
.font_color dd 0x0 ;+20
.background_color dd 0x0 ;+24
.text_pointer dd fname_buf ;+28
.work_area_pointer dd text_work_area ;+32
.temp_text_length dd 0 ;+36
;---------------------------------------------------------------------
if lang eq ru
save db '‘®åà ­¨âì',0
select db ' ‚ë¡à âì',0
label1 db '‚ë¡¥à¨â¥ ®¤¨­ ¨§ ¢ à¨ ­â®¢:',0
label2 db 'ˆ«¨ ¢¢¥¤¨â¥ ¯®«­ë© ¯ãâì ª ä ©«ã:',0
label2 db 'ˆ«¨ ¢ë¡¥à¨â¥ ¯®«­ë© ¯ãâì ª ä ©«ã:',0
label3 db '‚ᥠ¯ ¯ª¨ ¤®«¦­ë áãé¥á⢮¢ âì',0
ok db 'RAM-¤¨áª á®åà ­¥­ ãᯥ譮',0
error3 db '¥¨§¢¥áâ­ ï ä ©«®¢ ï á¨á⥬ ',0
298,10 → 368,12
error10 db '„®áâ㯠§ ¯à¥é¥­',0
error11 db 'Žè¨¡ª  ãáâனá⢠',0
aUnknownError db '¥¨§¢¥áâ­ ï ®è¨¡ª ',0
;---------------------------------------------------------------------
else if lang eq et
save db 'Salvesta',0
select db ' Valige',0
label1 db 'Vali üks variantidest:',0
label2 db 'Või sisesta teekond failinimeni:',0
label2 db 'Või valige teekond failinimeni:',0
label3 db 'Kõik kataloogid peavad eksisteerima',0
ok db 'RAM-ketas salvestatud edukalt',0
error3 db 'Tundmatu failisüsteem',0
311,11 → 383,12
error10 db 'Juurdepääs keelatud',0
error11 db 'Seadme viga',0
aUnknownError db 'Tundmatu viga',0
 
;---------------------------------------------------------------------
else
save db ' Save',0
select db ' Select',0
label1 db 'Select one of the variants:',0
label2 db ' Or enter full path to file:',0
label2 db ' Or select full path to file:',0
label3 db ' All folders must exist',0
ok db 'RAM-drive was saved successfully',0
error3 db 'Unknown file system',0
330,46 → 403,203
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;DATA ¤ ­­ë¥
;‚ᥣ¤  ᮡ«î¤ âì ¯®á«¥¤®¢ â¥«ì­®áâì ¢ ¨¬¥­¨.
system_path db '/sys/lib/'
library_name db 'box_lib.obj',0
system_dir_Boxlib db '/sys/lib/box_lib.obj',0
system_dir_ProcLib db '/sys/lib/proc_lib.obj',0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
err_message_found_lib db 'Sorry I cannot load library box_lib.obj',0
head_f_i:
head_f_l db 'System error',0
err_message_import db 'Error on load import library box_lib.obj',0
 
err_message_found_lib1 db 'box_lib.obj - Not found!',0
err_message_found_lib2 db 'proc_lib.obj - Not found!',0
 
err_message_import1 db 'box_lib.obj - Wrong import!',0
err_message_import2 db 'proc_lib.obj - Wrong import!',0
 
;---------------------------------------------------------------------
l_libs_start:
 
library01 l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
 
library02 l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
 
end_l_libs:
;---------------------------------------------------------------------
OpenDialog_data:
.type dd 1 ; Save
.procinfo dd procinfo ;+4
.com_area_name dd communication_area_name ;+8
.com_area dd 0 ;+12
.opendir_pach dd temp_dir_pach ;+16
.dir_default_pach dd communication_area_default_pach ;+20
.start_path dd open_dialog_path ;+24
.draw_window dd draw_window ;+28
.status dd 0 ;+32
.openfile_pach dd fname_buf ;+36
.filename_area dd filename_area ;+40
.filter_area dd Filter
.x:
.x_size dw 420 ;+48 ; Window X size
.x_start dw 10 ;+50 ; Window X position
.y:
.y_size dw 320 ;+52 ; Window y size
.y_start dw 10 ;+54 ; Window Y position
 
communication_area_name:
db 'FFFFFFFF_open_dialog',0
open_dialog_path:
db '/sys/File Managers/opendial',0
communication_area_default_pach:
db '/hd0/1/kolibri',0
 
Filter:
dd Filter.end - Filter.1
.1:
db 'IMG',0
db 'IMA',0
.end:
db 0
 
start_temp_file_name: db 'kolibri.img',0
 
;---------------------------------------------------------------------
align 4
myimport:
ProcLib_import:
OpenDialog_Init dd aOpenDialog_Init
OpenDialog_Start dd aOpenDialog_Start
;OpenDialog__Version dd aOpenDialog_Version
dd 0
dd 0
aOpenDialog_Init db 'OpenDialog_init',0
aOpenDialog_Start db 'OpenDialog_start',0
;aOpenDialog_Version db 'Version_OpenDialog',0
;---------------------------------------------------------------------
align 4
Box_lib_import:
;init_lib dd a_init
;version_lib dd a_version
 
edit_box_draw dd aEdit_box_draw
edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse
 
;edit_box_draw dd aEdit_box_draw
;edit_box_key dd aEdit_box_key
;edit_box_mouse dd aEdit_box_mouse
;version_ed dd aVersion_ed
 
;check_box_draw dd aCheck_box_draw
;check_box_mouse dd aCheck_box_mouse
;version_ch dd aVersion_ch
 
;option_box_draw dd aOption_box_draw
;option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
 
;scrollbar_ver_draw dd aScrollbar_ver_draw
;scrollbar_ver_mouse dd aScrollbar_ver_mouse
;scrollbar_hor_draw dd aScrollbar_hor_draw
;scrollbar_hor_mouse dd aScrollbar_hor_mouse
;version_scrollbar dd aVersion_scrollbar
 
;dinamic_button_draw dd aDbutton_draw
;dinamic_button_mouse dd aDbutton_mouse
;version_dbutton dd aVersion_dbutton
 
;menu_bar_draw dd aMenu_bar_draw
;menu_bar_mouse dd aMenu_bar_mouse
;menu_bar_activate dd aMenu_bar_activate
;version_menu_bar dd aVersion_menu_bar
 
;FileBrowser_draw dd aFileBrowser_draw
;FileBrowser_mouse dd aFileBrowser_mouse
;FileBrowser_key dd aFileBrowser_key
;Version_FileBrowser dd aVersion_FileBrowser
 
PathShow_prepare dd sz_PathShow_prepare
PathShow_draw dd sz_PathShow_draw
;Version_path_show dd szVersion_path_show
dd 0
dd 0
 
aEdit_box_draw db 'edit_box',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
;a_init db 'lib_init',0
;a_version db 'version',0
 
;aEdit_box_draw db 'edit_box',0
;aEdit_box_key db 'edit_box_key',0
;aEdit_box_mouse db 'edit_box_mouse',0
;aVersion_ed db 'version_ed',0
 
;aCheck_box_draw db 'check_box_draw',0
;aCheck_box_mouse db 'check_box_mouse',0
;aVersion_ch db 'version_ch',0
 
;mouse_flag: dd 0x0
;aOption_box_draw db 'option_box_draw',0
;aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
 
;aScrollbar_ver_draw db 'scrollbar_v_draw',0
;aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
;aScrollbar_hor_draw db 'scrollbar_h_draw',0
;aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
;aVersion_scrollbar db 'version_scrollbar',0
 
;aDbutton_draw db 'dbutton_draw',0
;aDbutton_mouse db 'dbutton_mouse',0
;aVersion_dbutton db 'version_dbutton',0
 
;aMenu_bar_draw db 'menu_bar_draw',0
;aMenu_bar_mouse db 'menu_bar_mouse',0
;aMenu_bar_activate db 'menu_bar_activate',0
;aVersion_menu_bar db 'version_menu_bar',0
 
;aFileBrowser_draw db 'FileBrowser_draw',0
;aFileBrowser_mouse db 'FileBrowser_mouse',0
;aFileBrowser_key db 'FileBrowser_key',0
;aVersion_FileBrowser db 'version_FileBrowser',0
 
sz_PathShow_prepare db 'PathShow_prepare',0
sz_PathShow_draw db 'PathShow_draw',0
;szVersion_path_show db 'version_PathShow',0
;---------------------------------------------------------------------
 
path1 db '/fd/1/',0
path2 db '/fd/2/',0
path3 db '/hd0/1/kolibri.img',0
path4 db '/hd0/1/kolibri/kolibri.img',0 ;¤«ï १¥à¢­®£® á®åà ­¥­¨ï
 
;---------------------------------------------------------------------
 
rb 514
 
key_help:
db '1',0
db '2',0
db '3',0
db '4',0
;---------------------------------------------------------------------
IM_END:
;---------------------------------------------------------------------
sc system_colors
mouse_dd rd 1
cur_dir_path rb 1096
library_path rb 1096
;---------------------------------------------------------------------
cur_dir_path:
rb 4096
;---------------------------------------------------------------------
library_path:
rb 4096
;---------------------------------------------------------------------
temp_dir_pach:
rb 4096
;---------------------------------------------------------------------
fname_buf:
rb 4096
;---------------------------------------------------------------------
procinfo:
rb 1024
;---------------------------------------------------------------------
filename_area:
rb 256
;---------------------------------------------------------------------
text_work_area:
rb 1024
;---------------------------------------------------------------------
align 4
rb 0x100 ; for stack
rb 4096
stacktop:
I_END: ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë