Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7482 → Rev 7483

/programs/system/format/format.asm
2,7 → 2,7
; Formatting Disk Utility ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Compile with FASM
; FORMAT ver. Oct 18, 2018
; FORMAT ver. Oct 19, 2018
 
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
; All rights reserved.
69,8 → 69,7
 
call initBuf
 
mov dword[editLU.text_color], ecx
mov dword[editRU.text_color], ecx
mov dword[editLabel.text_color], ecx
mov dword[editMBR.text_color], ecx
 
invoke init_checkbox, ch1
116,6 → 115,8
mov byte[kmUnitID], 0
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, unittext.0, [kmUnit]
 
call getDeviceList
 
call draw_window
 
event_wait:
142,8 → 143,7
 
key:
mcall 2
invoke edit_box_key, editLU
invoke edit_box_key, editRU
invoke edit_box_key, editLabel
invoke edit_box_key, editMBR
jmp event_wait
 
175,6 → 175,11
call butUnit
jmp event_wait
@@:
cmp ah, 6 ;Select Device button
jne @f
call butDevice
jmp event_wait
@@:
cmp ah, 110 ;kmenu list FS
jb @f
cmp ah, 114
191,6 → 196,14
mov byte[kmUnitID], ah
jmp redraw
@@:
cmp ah, 130 ;kmenu Device
jb @f
cmp ah, 250
ja @f
sub ah, 130
mov byte[kmDeviceID], ah
jmp redraw
@@:
jmp event_wait
 
mouse:
197,8 → 210,7
invoke check_box_mouse, ch1 ;ïðîâåðêà ÷åê áîêñà
invoke check_box_mouse, ch2
 
invoke edit_box_mouse, editLU ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
invoke edit_box_mouse, editRU
invoke edit_box_mouse, editLabel ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
invoke edit_box_mouse, editMBR
 
stdcall [kmainmenu_dispatch_cursorevent], [kmFS]
243,6 → 255,23
pop ecx ebx eax
ret
 
butDevice:
push eax ebx ecx
mcall 9, pi, -1
 
mov eax, dword[pi+34]
add eax, Otstup+80+30+delta
mov word[coordDevice.x], ax
 
mov eax, dword[pi+38]
add eax, 79
mov word[coordDevice.y], ax
 
stdcall [ksubmenu_draw], [kmDevice], coordDevice
pop ecx ebx eax
ret
 
 
delta = 50
dy = 15 + 40
warning_title: db 'Warning!',0
264,7 → 293,7
mcall
 
 
mov ebx, (290+delta-Otstup-130)*65536+130
mov ebx, (290+delta-Otstup-130+10)*65536+130
mov ecx, (270+dy)*65536+(20+3)
mov edx, 0x00000002
mov esi, 0xAABBCC
290,12 → 319,18
mov esi, 0xFFFFFF
mcall 8
 
;button select device
mov ebx, (Otstup+80+30+delta)*65536+120
mov ecx, (60)*65536+(21)
mov edx, 0x00000006
mov esi, 0xFFFFFF
mcall 8
 
invoke check_box_draw, ch1 ;ðèñîâàíèå ÷åêáîêñîâ
invoke check_box_draw, ch2
 
invoke edit_box_draw, editMBR ;ðèñîâàíèå edit box'îâ
invoke edit_box_draw, editLU
invoke edit_box_draw, editRU
invoke edit_box_draw, editLabel
 
call draw_super_text
 
340,6 → 375,16
.option db ' à ¬¥âàë:', 0
.format db '”®à¬ â¨à®¢ âì', 0
 
unittext:
.0 db '512 ¡ ©â', 0
.1 db '1024 ¡ ©â', 0
.2 db '2048 ¡ ©â', 0
.3 db '4096 ¡ ©â', 0
.4 db '8192 ¡ ©â', 0
.5 db '16 Š¡', 0
.6 db '32 Š¡', 0
.7 db '64 Š¡', 0
 
head_f_i:
head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
363,6 → 408,16
.option db 'Options:', 0
.format db 'Format', 0
 
unittext:
.0 db '512 bytes', 0
.1 db '1024 bytes', 0
.2 db '2048 bytes', 0
.3 db '4096 bytes', 0
.4 db '8192 bytes', 0
.5 db '16 Kb', 0
.6 db '32 Kb', 0
.7 db '64 Kb', 0
 
head_f_i:
head_f_l db 'System error',0
err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0
373,6 → 428,71
end if
 
 
 
root_path: db "/", 0
 
align 4
maxDeviceCount = 250-130
read_folder_struct:
.subfunction dd 1
.start dd 0 ;start block
.encoding dd 3 ;1-cp866, 2-UTF-16LE, 3-utf8
.count dd maxDeviceCount ;count blocks
.return dd 0 ;àäðåñ ïàìÿòè äëÿ ïîëó÷àåìîãî áëîêà ÁÄÂÊ ñ çàãîëîâêîì
.name db 0
.path_adr dd root_path
noneDevice: db '-', 0
;adrDevice: dd 0
 
getDeviceList:
push eax ebx ecx esi
stdcall [ksubmenu_new]
mov [kmDevice], eax
sizeBDVK = 560 ;304 ;
 
mcall 68, 11
 
mcall 68, 12, sizeBDVK*maxDeviceCount+32
mov dword[read_folder_struct.return], eax
mcall 70, read_folder_struct
cmp eax, 0
je .next
cmp eax, 6
je .next
jmp .none
.next:
mov eax, dword[read_folder_struct.return]
mov esi, deviceAdrStr
add eax, 32
mov ecx, 130
@@:
cmp ebx, 0
je @f
push eax ebx ecx
add eax, 40
;mov [adrDevice], eax
mov dword[esi], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, [esi], ecx ; [adrDevice], ecx
stdcall [ksubmenu_add], [kmDevice], eax
pop ecx ebx eax
add esi, 4
inc ecx
dec ebx
add eax, sizeBDVK
cmp ecx, 250
ja @f
jmp @b
.none:
stdcall [kmenuitem_new], KMENUITEM_NORMAL, noneDevice, 130
mov dword[esi], noneDevice
stdcall [ksubmenu_add], [kmDevice], eax
@@:
mov byte[kmDeviceID], 0
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, unittext.0, [kmDevice]
pop esi ecx ebx eax
ret
 
 
draw_super_text:
push eax ebx ecx edx edi esi
mov ebx, Otstup * 65536 + 49-6 ; draw info text with function 4 (x, y)
482,8 → 602,17
;mov esi, 8
mcall 4
 
;button device
mov ebx, (Otstup+80+30+delta +5) * 65536 + (60+3)
mov edx, dword[kmDeviceID]
shl edx, 2
add edx, deviceAdrStr
mov edx, dword[edx]
;call setCurrentDeviceInEDX
mcall 4
 
;buttons text
mov ebx, (290+delta-Otstup-130+10+2) * 65536 + (277-3+dy)
mov ebx, (290+delta-Otstup-130+10+2+10) * 65536 + (277-3+dy)
mov ecx, 0x90FFFFFF
mov eax, text.format
mov edx, eax
500,21 → 629,11
pop esi edi edx ecx ebx eax
ret
 
unittext:
.0 db '512 bytes', 0
.1 db '1024 bytes', 0
.2 db '2048 bytes', 0
.3 db '4096 bytes', 0
.4 db '8192 bytes', 0
.5 db '16 Kb', 0
.6 db '32 Kb', 0
.7 db '64 Kb', 0
 
 
Buf:
.1 db 'NONAME18',0,0
;.2 db 'FAT',0,0 ;100 dup(0)
.3 db 'hd0 [FAT32: 4Gb]',0,0 ;100 dup(0)
;.4 db '4096',0,0 ;100 dup(0)
;.3 db 'hd0 [4Gb]',0,0 ;100 dup(0)
.5 rb 512 ;db '/rd/1/format/fat32mbr.bin', 0, 0
 
initBuf:
725,8 → 844,8
load_lib_end:
 
;ðàçìåðû: 80 è 120
editLU edit_box 120,Otstup,60,0xffffff,0x6a9480,0,0xAABBCC,0,8,Buf.1, mouse_dd, 0,8,8
editRU edit_box 120,Otstup+80+30+delta,60,0xffffff,0x6a9480,0,0xAABBCC,0,16,Buf.3, mouse_dd, 0,16,16
editLabel edit_box 120,Otstup,60,0xffffff,0x6a9480,0,0xAABBCC,0,8,Buf.1, mouse_dd, 0,8,8
;editRU edit_box 120,Otstup+80+30+delta,60,0xffffff,0x6a9480,0,0xAABBCC,0,16,Buf.3, mouse_dd, 0,16,16
editMBR edit_box 290+delta-Otstup-52-Otstup-20,Otstup+20,210+dy,0xffffff,0x6a9480,0,0xAABBCC,0,255,Buf.5, mouse_dd, 0,0,0 ;25,25
 
data_of_code dd 0
742,6 → 861,13
.x: rw 1
.y: rw 1
 
coordDevice:
.x: rw 1
.y: rw 1
 
kmDeviceID: rd 1
kmDevice: rd 1
 
kmUnitID: rd 1
kmUnit: rd 1
 
758,6 → 884,8
procinfo process_information
pi rb 1024
 
deviceAdrStr: rd maxDeviceCount
 
I_END:
rb 256
align 4