Subversion Repositories Kolibri OS

Rev

Rev 7476 | Rev 8346 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7476 Rev 7483
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
; Formatting Disk Utility ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
; Formatting Disk Utility ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4
; Compile with FASM
4
; Compile with FASM
5
; FORMAT ver. Oct 18, 2018
5
; FORMAT ver. Oct 19, 2018
Line 6... Line 6...
6
 
6
 
7
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
7
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
8
; All rights reserved.
8
; All rights reserved.
9
; Redistribution and use in source and binary forms, with or without modification,
9
; Redistribution and use in source and binary forms, with or without modification,
Line 67... Line 67...
67
   and ecx, 0x9FFFFFFF
67
   and ecx, 0x9FFFFFFF
68
   or  ecx,0x90000000
68
   or  ecx,0x90000000
Line 69... Line 69...
69
 
69
 
Line 70... Line 70...
70
   call initBuf
70
   call initBuf
71
 
-
 
72
   mov dword[editLU.text_color], ecx
71
 
Line 73... Line 72...
73
   mov dword[editRU.text_color], ecx
72
   mov dword[editLabel.text_color], ecx
74
   mov dword[editMBR.text_color], ecx
73
   mov dword[editMBR.text_color], ecx
Line 114... Line 113...
114
   stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.7, 127
113
   stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.7, 127
115
   stdcall [ksubmenu_add], [kmUnit], eax
114
   stdcall [ksubmenu_add], [kmUnit], eax
116
   mov byte[kmUnitID], 0
115
   mov byte[kmUnitID], 0
117
   stdcall [kmenuitem_new], KMENUITEM_SUBMENU, unittext.0, [kmUnit]
116
   stdcall [kmenuitem_new], KMENUITEM_SUBMENU, unittext.0, [kmUnit]
Line -... Line 117...
-
 
117
 
-
 
118
   call getDeviceList
118
 
119
 
Line 119... Line 120...
119
   call  draw_window
120
   call  draw_window
120
 
121
 
Line 140... Line 141...
140
   call    draw_window
141
   call    draw_window
141
   jmp     event_wait
142
   jmp     event_wait
Line 142... Line 143...
142
 
143
 
143
key:
144
key:
144
   mcall 2
145
   mcall 2
145
   invoke  edit_box_key, editLU
-
 
146
   invoke  edit_box_key, editRU
146
   invoke  edit_box_key, editLabel
147
   invoke  edit_box_key, editMBR
147
   invoke  edit_box_key, editMBR
Line 148... Line 148...
148
   jmp     event_wait
148
   jmp     event_wait
149
 
149
 
Line 173... Line 173...
173
   cmp ah, 5          ;Select unit size button
173
   cmp ah, 5          ;Select unit size button
174
   jne @f
174
   jne @f
175
   call butUnit
175
   call butUnit
176
   jmp event_wait
176
   jmp event_wait
177
@@:
177
@@:
-
 
178
   cmp ah, 6          ;Select Device button
-
 
179
   jne @f
-
 
180
   call butDevice
-
 
181
   jmp event_wait
-
 
182
@@:
178
   cmp ah, 110        ;kmenu list FS
183
   cmp ah, 110        ;kmenu list FS
179
   jb @f
184
   jb @f
180
   cmp ah, 114
185
   cmp ah, 114
181
   ja @f
186
   ja @f
182
   sub ah, 110
187
   sub ah, 110
Line 189... Line 194...
189
   ja @f
194
   ja @f
190
   sub ah, 120
195
   sub ah, 120
191
   mov byte[kmUnitID], ah
196
   mov byte[kmUnitID], ah
192
   jmp redraw
197
   jmp redraw
193
@@:
198
@@:
-
 
199
   cmp ah, 130        ;kmenu Device
-
 
200
   jb @f
-
 
201
   cmp ah, 250
-
 
202
   ja @f
-
 
203
   sub ah, 130
-
 
204
   mov byte[kmDeviceID], ah
-
 
205
   jmp redraw
-
 
206
@@:
194
   jmp event_wait
207
   jmp event_wait
Line 195... Line 208...
195
 
208
 
196
mouse:
209
mouse:
197
   invoke check_box_mouse, ch1  ;ïðîâåðêà ÷åê áîêñà
210
   invoke check_box_mouse, ch1  ;ïðîâåðêà ÷åê áîêñà
Line 198... Line 211...
198
   invoke check_box_mouse, ch2
211
   invoke check_box_mouse, ch2
199
 
-
 
200
   invoke  edit_box_mouse, editLU   ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
212
 
Line 201... Line 213...
201
   invoke  edit_box_mouse, editRU
213
   invoke  edit_box_mouse, editLabel   ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
202
   invoke  edit_box_mouse, editMBR
214
   invoke  edit_box_mouse, editMBR
Line 241... Line 253...
241
 
253
 
242
   stdcall [ksubmenu_draw], [kmUnit], coordUnit
254
   stdcall [ksubmenu_draw], [kmUnit], coordUnit
243
   pop ecx ebx eax
255
   pop ecx ebx eax
Line -... Line 256...
-
 
256
   ret
-
 
257
 
-
 
258
butDevice:
-
 
259
   push eax ebx ecx
-
 
260
   mcall 9, pi, -1
-
 
261
 
-
 
262
   mov eax, dword[pi+34]
-
 
263
   add eax, Otstup+80+30+delta
-
 
264
   mov word[coordDevice.x], ax
-
 
265
 
-
 
266
   mov eax, dword[pi+38]
-
 
267
   add eax, 79
-
 
268
   mov word[coordDevice.y], ax
-
 
269
 
-
 
270
   stdcall [ksubmenu_draw], [kmDevice], coordDevice
-
 
271
   pop ecx ebx eax
-
 
272
   ret
244
   ret
273
 
245
 
274
 
246
delta = 50
275
delta = 50
247
dy = 15 + 40
276
dy = 15 + 40
248
warning_title: db 'Warning!',0
277
warning_title: db 'Warning!',0
Line 262... Line 291...
262
                                        ; 0x80000000 = color glide
291
                                        ; 0x80000000 = color glide
263
        mov     edi, title
292
        mov     edi, title
264
        mcall
293
        mcall
Line 265... Line 294...
265
 
294
 
266
 
295
 
267
        mov ebx, (290+delta-Otstup-130)*65536+130
296
        mov ebx, (290+delta-Otstup-130+10)*65536+130
268
        mov ecx, (270+dy)*65536+(20+3)
297
        mov ecx, (270+dy)*65536+(20+3)
269
        mov edx, 0x00000002
298
        mov edx, 0x00000002
Line 288... Line 317...
288
        mov ecx, (110)*65536+(21)
317
        mov ecx, (110)*65536+(21)
289
        mov edx, 0x00000005
318
        mov edx, 0x00000005
290
        mov esi, 0xFFFFFF
319
        mov esi, 0xFFFFFF
291
        mcall 8
320
        mcall 8
Line -... Line 321...
-
 
321
 
-
 
322
        ;button select device
-
 
323
        mov ebx, (Otstup+80+30+delta)*65536+120
-
 
324
        mov ecx, (60)*65536+(21)
-
 
325
        mov edx, 0x00000006
-
 
326
        mov esi, 0xFFFFFF
-
 
327
        mcall 8
292
 
328
 
293
       invoke check_box_draw, ch1  ;ðèñîâàíèå ÷åêáîêñîâ
329
       invoke check_box_draw, ch1  ;ðèñîâàíèå ÷åêáîêñîâ
Line 294... Line 330...
294
       invoke check_box_draw, ch2
330
       invoke check_box_draw, ch2
295
 
331
 
296
       invoke  edit_box_draw, editMBR     ;ðèñîâàíèå edit box'îâ
-
 
Line 297... Line 332...
297
       invoke  edit_box_draw, editLU
332
       invoke  edit_box_draw, editMBR     ;ðèñîâàíèå edit box'îâ
Line 298... Line 333...
298
       invoke  edit_box_draw, editRU
333
       invoke  edit_box_draw, editLabel
Line 338... Line 373...
338
  .disk   db ' ª®¯¨â¥«ì:', 0 ;'…¬ª®áâì:', 0
373
  .disk   db ' ª®¯¨â¥«ì:', 0 ;'…¬ª®áâì:', 0
339
  .unit   db ' §¬¥à ª« áâ¥à :', 0
374
  .unit   db ' §¬¥à ª« áâ¥à :', 0
340
  .option db ' à ¬¥âàë:', 0
375
  .option db ' à ¬¥âàë:', 0
341
  .format db '”®à¬ â¨à®¢ âì', 0
376
  .format db '”®à¬ â¨à®¢ âì', 0
Line -... Line 377...
-
 
377
 
-
 
378
unittext:
-
 
379
  .0 db '512 ¡ ©â', 0
-
 
380
  .1 db '1024 ¡ ©â', 0
-
 
381
  .2 db '2048 ¡ ©â', 0
-
 
382
  .3 db '4096 ¡ ©â', 0
-
 
383
  .4 db '8192 ¡ ©â', 0
-
 
384
  .5 db '16 Š¡', 0
-
 
385
  .6 db '32 Š¡', 0
-
 
386
  .7 db '64 Š¡', 0
342
 
387
 
343
head_f_i:
388
head_f_i:
344
  head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
389
  head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
345
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
390
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
346
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
391
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
Line 361... Line 406...
361
  .disk   db 'Storage device:', 0 ;'Capacity:', 0
406
  .disk   db 'Storage device:', 0 ;'Capacity:', 0
362
  .unit   db 'Allocation unit size:', 0
407
  .unit   db 'Allocation unit size:', 0
363
  .option db 'Options:', 0
408
  .option db 'Options:', 0
364
  .format db 'Format', 0
409
  .format db 'Format', 0
Line -... Line 410...
-
 
410
 
-
 
411
unittext:
-
 
412
  .0 db '512 bytes', 0
-
 
413
  .1 db '1024 bytes', 0
-
 
414
  .2 db '2048 bytes', 0
-
 
415
  .3 db '4096 bytes', 0
-
 
416
  .4 db '8192 bytes', 0
-
 
417
  .5 db '16 Kb', 0
-
 
418
  .6 db '32 Kb', 0
-
 
419
  .7 db '64 Kb', 0
365
 
420
 
366
head_f_i:
421
head_f_i:
367
  head_f_l  db 'System error',0
422
  head_f_l  db 'System error',0
368
  err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0
423
  err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0
369
  err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0
424
  err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0
370
  err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0
425
  err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0
Line 371... Line 426...
371
  err_message_import1 db 'Error importing library ',39,'kmenu',39,0
426
  err_message_import1 db 'Error importing library ',39,'kmenu',39,0
Line -... Line 427...
-
 
427
 
-
 
428
end if
-
 
429
 
-
 
430
 
-
 
431
 
-
 
432
root_path: db "/", 0
-
 
433
 
-
 
434
align 4
-
 
435
maxDeviceCount = 250-130
-
 
436
read_folder_struct:
-
 
437
   .subfunction dd  1
-
 
438
   .start       dd  0 ;start block
-
 
439
   .encoding    dd  3 ;1-cp866, 2-UTF-16LE, 3-utf8
-
 
440
   .count       dd  maxDeviceCount ;count blocks
-
 
441
   .return      dd  0 ;àäðåñ ïàìÿòè äëÿ ïîëó÷àåìîãî áëîêà ÁÄÂÊ ñ çàãîëîâêîì
-
 
442
   .name        db  0
-
 
443
   .path_adr    dd  root_path
-
 
444
noneDevice: db '-', 0
-
 
445
;adrDevice: dd 0
-
 
446
 
-
 
447
getDeviceList:
-
 
448
   push eax ebx ecx esi
-
 
449
   stdcall [ksubmenu_new]
-
 
450
   mov [kmDevice], eax
-
 
451
   sizeBDVK = 560   ;304 ;
-
 
452
 
-
 
453
   mcall 68, 11
-
 
454
 
-
 
455
   mcall 68, 12, sizeBDVK*maxDeviceCount+32
-
 
456
   mov dword[read_folder_struct.return], eax
-
 
457
   mcall 70, read_folder_struct
-
 
458
   cmp eax, 0
-
 
459
   je .next
-
 
460
   cmp eax, 6
-
 
461
   je .next
-
 
462
   jmp .none
-
 
463
.next:
-
 
464
   mov eax, dword[read_folder_struct.return]
-
 
465
   mov esi, deviceAdrStr
-
 
466
   add eax, 32
-
 
467
   mov ecx, 130
-
 
468
@@:
-
 
469
   cmp ebx, 0
-
 
470
   je @f
-
 
471
   push eax ebx ecx
-
 
472
   add eax, 40
-
 
473
   ;mov [adrDevice], eax
-
 
474
   mov dword[esi], eax
-
 
475
   stdcall [kmenuitem_new], KMENUITEM_NORMAL, [esi], ecx ; [adrDevice], ecx
-
 
476
   stdcall [ksubmenu_add], [kmDevice], eax
-
 
477
   pop ecx ebx eax
-
 
478
   add esi, 4
-
 
479
   inc ecx
-
 
480
   dec ebx
-
 
481
   add eax, sizeBDVK
-
 
482
   cmp ecx, 250
-
 
483
   ja @f
-
 
484
   jmp @b
-
 
485
.none:
-
 
486
   stdcall [kmenuitem_new], KMENUITEM_NORMAL, noneDevice, 130
-
 
487
   mov dword[esi], noneDevice
-
 
488
   stdcall [ksubmenu_add], [kmDevice], eax
-
 
489
@@:
-
 
490
   mov byte[kmDeviceID], 0
-
 
491
   stdcall [kmenuitem_new], KMENUITEM_SUBMENU, unittext.0, [kmDevice]
372
 
492
   pop esi ecx ebx eax
373
end if
493
   ret
374
 
494
 
375
 
495
 
376
draw_super_text:
496
draw_super_text:
Line 480... Line 600...
480
   mov     edx, kmNone
600
   mov     edx, kmNone
481
.printFS:
601
.printFS:
482
   ;mov     esi, 8
602
   ;mov     esi, 8
483
   mcall 4
603
   mcall 4
Line -... Line 604...
-
 
604
 
-
 
605
   ;button device
-
 
606
   mov     ebx, (Otstup+80+30+delta +5) * 65536 + (60+3)
-
 
607
   mov edx, dword[kmDeviceID]
-
 
608
   shl edx, 2
-
 
609
   add edx, deviceAdrStr
-
 
610
   mov edx, dword[edx]
-
 
611
   ;call setCurrentDeviceInEDX
-
 
612
   mcall 4
484
 
613
 
485
   ;buttons text
614
   ;buttons text
486
   mov     ebx, (290+delta-Otstup-130+10+2) * 65536 + (277-3+dy)
615
   mov     ebx, (290+delta-Otstup-130+10+2+10) * 65536 + (277-3+dy)
487
   mov     ecx, 0x90FFFFFF
616
   mov     ecx, 0x90FFFFFF
488
   mov eax, text.format
617
   mov eax, text.format
489
   mov     edx, eax
618
   mov     edx, eax
490
   mov     esi, 6
619
   mov     esi, 6
Line 498... Line 627...
498
   mcall 4
627
   mcall 4
Line 499... Line 628...
499
 
628
 
500
   pop esi edi edx ecx ebx eax
629
   pop esi edi edx ecx ebx eax
Line 501... Line 630...
501
   ret
630
   ret
502
 
-
 
503
unittext:
-
 
504
  .0 db '512 bytes', 0
-
 
505
  .1 db '1024 bytes', 0
-
 
506
  .2 db '2048 bytes', 0
-
 
507
  .3 db '4096 bytes', 0
-
 
508
  .4 db '8192 bytes', 0
-
 
509
  .5 db '16 Kb', 0
-
 
Line 510... Line 631...
510
  .6 db '32 Kb', 0
631
 
511
  .7 db '64 Kb', 0
632
 
512
 
-
 
513
Buf:
633
 
514
  .1 db 'NONAME18',0,0
-
 
515
  ;.2 db 'FAT',0,0 ;100 dup(0)
634
Buf:
Line 516... Line 635...
516
  .3 db 'hd0 [FAT32: 4Gb]',0,0 ;100 dup(0)
635
  .1 db 'NONAME18',0,0
517
  ;.4 db '4096',0,0 ;100 dup(0)
636
  ;.3 db 'hd0 [4Gb]',0,0 ;100 dup(0)
518
  .5 rb 512 ;db '/rd/1/format/fat32mbr.bin', 0, 0
637
  .5 rb 512 ;db '/rd/1/format/fat32mbr.bin', 0, 0
Line 723... Line 842...
723
    lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i
842
    lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i
724
    lib1 l_libs lib1_name, sys_path, file_name, system_dir0, err_message_found_lib1, head_f_l, import_libkmenu,err_message_import1,head_f_i
843
    lib1 l_libs lib1_name, sys_path, file_name, system_dir0, err_message_found_lib1, head_f_l, import_libkmenu,err_message_import1,head_f_i
725
load_lib_end:
844
load_lib_end:
Line 726... Line 845...
726
 
845
 
727
;ðàçìåðû: 80 è 120
846
;ðàçìåðû: 80 è 120
728
editLU edit_box 120,Otstup,60,0xffffff,0x6a9480,0,0xAABBCC,0,8,Buf.1, mouse_dd, 0,8,8
847
editLabel edit_box 120,Otstup,60,0xffffff,0x6a9480,0,0xAABBCC,0,8,Buf.1, mouse_dd, 0,8,8
729
editRU edit_box 120,Otstup+80+30+delta,60,0xffffff,0x6a9480,0,0xAABBCC,0,16,Buf.3, mouse_dd, 0,16,16
848
;editRU edit_box 120,Otstup+80+30+delta,60,0xffffff,0x6a9480,0,0xAABBCC,0,16,Buf.3, mouse_dd, 0,16,16
Line 730... Line 849...
730
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
849
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
Line 731... Line 850...
731
 
850
 
Line 740... Line 859...
740
 
859
 
741
coordUnit:
860
coordUnit:
742
  .x: rw 1
861
  .x: rw 1
Line -... Line 862...
-
 
862
  .y: rw 1
-
 
863
 
-
 
864
coordDevice:
-
 
865
  .x: rw 1
-
 
866
  .y: rw 1
-
 
867
 
-
 
868
kmDeviceID: rd 1
743
  .y: rw 1
869
kmDevice: rd 1
744
 
870
 
Line 745... Line 871...
745
kmUnitID: rd 1
871
kmUnitID: rd 1
746
kmUnit: rd 1
872
kmUnit: rd 1
Line 756... Line 882...
756
filename_area: rb 256
882
filename_area: rb 256
757
rb 1024
883
rb 1024
758
procinfo process_information
884
procinfo process_information
759
pi rb 1024
885
pi rb 1024
Line -... Line 886...
-
 
886
 
-
 
887
deviceAdrStr: rd maxDeviceCount
760
 
888
 
761
I_END:
889
I_END:
762
        rb 256
890
        rb 256
763
align 4
891
align 4
764
STACKTOP:
892
STACKTOP: