174 lines
3.6 KiB
PHP
174 lines
3.6 KiB
PHP
|
;-------------------------------------------------------------
|
||
|
create_directory:
|
||
|
call clear_file_buffer
|
||
|
mov edi, edit1
|
||
|
mov ed_size, dword 0
|
||
|
mov ed_pos, dword 0
|
||
|
default_box
|
||
|
mov [create_dir_name],byte 0
|
||
|
mcall 66, 1, 0
|
||
|
jmp .red
|
||
|
.red_1:
|
||
|
call draw_window
|
||
|
.red:
|
||
|
call draw_create_dir
|
||
|
.still:
|
||
|
mcall 10
|
||
|
cmp eax,1
|
||
|
je .red_1
|
||
|
cmp eax,2
|
||
|
je .key_create
|
||
|
cmp eax,3
|
||
|
je .button_create
|
||
|
mouse_edit_box create_editboxes
|
||
|
jmp .still
|
||
|
;-------------------------------------------------------------
|
||
|
.button_create:
|
||
|
mov eax,17
|
||
|
int 0x40
|
||
|
test ah,ah
|
||
|
jz .still
|
||
|
cmp ah,160
|
||
|
je .exit_with_create
|
||
|
cmp ah,161
|
||
|
je .exit_without_create
|
||
|
cmp ah,1
|
||
|
jne .still
|
||
|
mcall -1
|
||
|
.exit_with_create:
|
||
|
call create_directory_1
|
||
|
cmp [select_panel_counter],0
|
||
|
jne @f
|
||
|
call proc_read_left_folder
|
||
|
jmp .exit_without_create
|
||
|
@@:
|
||
|
call proc_read_right_folder
|
||
|
.exit_without_create:
|
||
|
mcall 66, 1, 1
|
||
|
jmp red
|
||
|
;-------------------------------------------------------------
|
||
|
.key_create:
|
||
|
mov eax,2
|
||
|
int 0x40
|
||
|
cmp ah,13
|
||
|
je .exit_with_create
|
||
|
cmp ah,27
|
||
|
je .exit_without_create
|
||
|
key_edit_box create_editboxes
|
||
|
jmp .still
|
||
|
;-------------------------------------------------------------
|
||
|
draw_create_dir:
|
||
|
mov ecx,[window_high]
|
||
|
mov ebx,[window_width]
|
||
|
shr ecx,1
|
||
|
shr ebx,1
|
||
|
sub ecx,30
|
||
|
sub ebx,87
|
||
|
shl ecx,16
|
||
|
shl ebx,16
|
||
|
mov cx,60
|
||
|
mov bx,174
|
||
|
mcall 13, , ,0x6060ff ;0xff
|
||
|
pusha
|
||
|
shr ebx,16
|
||
|
add ebx,10
|
||
|
shr ecx,16
|
||
|
add ecx,17
|
||
|
mov eax,create_editboxes
|
||
|
mov dword [eax+4],ebx
|
||
|
mov dword [eax+8],ecx
|
||
|
draw_edit_box create_editboxes
|
||
|
popa
|
||
|
pusha
|
||
|
add ebx,70 shl 16
|
||
|
add ecx,37 shl 16
|
||
|
mov cx,15
|
||
|
mov bx,40
|
||
|
mov esi,0xffffff
|
||
|
mov edx,0x40000000+160
|
||
|
mov eax,8
|
||
|
int 0x40
|
||
|
add ebx,50 shl 16
|
||
|
inc edx
|
||
|
int 0x40
|
||
|
popa
|
||
|
|
||
|
push ebx ecx
|
||
|
add ebx,70 shl 16
|
||
|
add ecx,37 shl 16
|
||
|
mov bx,40
|
||
|
mov cx,15
|
||
|
mov edx,0
|
||
|
push ebx ecx
|
||
|
sub ecx,1 shl 16
|
||
|
sub ebx,1 shl 16
|
||
|
mov bx,42
|
||
|
mov cx,17
|
||
|
int 0x40
|
||
|
add ebx,50 shl 16
|
||
|
int 0x40
|
||
|
pop ecx ebx
|
||
|
mov edx,0xff7700
|
||
|
int 0x40
|
||
|
mov edx,0xaa00
|
||
|
add ebx,50 shl 16
|
||
|
int 0x40
|
||
|
pop ecx ebx
|
||
|
|
||
|
shr ecx,16
|
||
|
mov bx,cx
|
||
|
add ebx,30 shl 16+5
|
||
|
mcall 4, ,0x90ffffff,create_dir ;[confirmation_type]
|
||
|
add ebx,48 shl 16+36
|
||
|
mov edx,type_yes
|
||
|
int 0x40
|
||
|
add ebx,56 shl 16
|
||
|
mov edx,type_no
|
||
|
int 0x40
|
||
|
ret
|
||
|
;-------------------------------------------------------------
|
||
|
create_directory_1:
|
||
|
mov edx,create_dir_name
|
||
|
cmp [select_panel_counter],0
|
||
|
jne @f
|
||
|
mov esi,read_folder_name
|
||
|
jmp .start
|
||
|
@@:
|
||
|
mov esi,read_folder_1_name
|
||
|
.start:
|
||
|
mov edi,file_name
|
||
|
xor eax,eax
|
||
|
@@:
|
||
|
cld
|
||
|
lodsb
|
||
|
stosb
|
||
|
test eax,eax
|
||
|
jnz @b
|
||
|
mov [edi-1], byte '/'
|
||
|
mov esi,edx
|
||
|
mov [error_pointer], edx ;start_file_data.name
|
||
|
@@:
|
||
|
cld
|
||
|
lodsb
|
||
|
stosb
|
||
|
test eax,eax
|
||
|
jnz @b
|
||
|
call create_directory_f70
|
||
|
cmp eax,0
|
||
|
je @f
|
||
|
; mov ebx,0
|
||
|
; sub ebx,eax
|
||
|
; mov eax,ebx
|
||
|
call start_error_window_thread
|
||
|
@@:
|
||
|
; call create_directory_f70
|
||
|
ret
|
||
|
;-------------------------------------------------------------
|
||
|
clear_file_buffer:
|
||
|
xor eax,eax
|
||
|
mov edi,create_dir_name
|
||
|
mov ecx,256/4
|
||
|
cld
|
||
|
rep stosd
|
||
|
ret
|
||
|
;-------------------------------------------------------------
|