mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
142 lines
3.5 KiB
NASM
Executable File
142 lines
3.5 KiB
NASM
Executable File
;-----------------------------------------------------------
|
||
; ‚ëç¨á«¨âì ᢮¡®¤®¥ ¬¥áâ® 2 ¤¨áª å ¯ ¥«¥©
|
||
;-----------------------------------------------------------
|
||
get_total_free_space:
|
||
; ªâ. ¯ ¥«ì
|
||
ld hl,free_space_disk ; ï祩ª¨ ªâ. ¯ ¥«¨
|
||
ld a,(format_mode) ; ä®à¬ â ªâ. ¯ ¥«¨
|
||
ld b,a
|
||
ld a,(disk) ; ¤¨áª ªâ. ¯ ¥«¨
|
||
ld c,a
|
||
push bc
|
||
call get_free_space ; ᢮¡. ¬¥áâ® ¤¨áª¥
|
||
pop bc
|
||
ld a,(disk1) ; ¤¨áª ¯ áá. ¯ ¥«¨
|
||
cp c ; ¤¨áª¨ ¯ ¥«ïå à ¢ë ?
|
||
jr nz,get_free_noact ; ¥â
|
||
ld hl,free_space_disk ; ï祩ª¨ ªâ. ¯ ¥«¨
|
||
ld de,free_space_disk1 ; ï祩ª¨ ¯ áá. ¯ ¥«¨
|
||
ld bc,4
|
||
ldir
|
||
ret
|
||
;
|
||
get_free_noact:
|
||
; ¯ áá. ¯ ¥«ì
|
||
ld c,a ; ®¬¥à ¤¨áª
|
||
ld a,(format_mode1) ; ä®à¬ â ¯ áá. ¯ ¥«¨
|
||
ld b,a
|
||
ld hl,free_space_disk1 ; ï祩ª¨ ¯ áá. ¯ ¥«¨
|
||
;-------------------------------------------------
|
||
; ‚ëç¨á«¨âì ᢮¡®¤®¥ ¬¥áâ® ¤¨áª¥
|
||
; ¢å®¤: c=®¬¥à ¤¨áª (A=0, B=1,...)
|
||
; b=ä®à¬ â ¯ ¥«¨
|
||
; hl=ï祩ª¨ "free_space_disk" ¯ ¥«¨
|
||
;-------------------------------------------------
|
||
get_free_space:
|
||
ld a,(flag_summary_info) ; ä« £ ¢ë¢®¤ á㬬 ன ¨äë
|
||
or a
|
||
ret z ; false
|
||
bit 6,b ; ᯥª-ä®à¬ â
|
||
ret nz
|
||
; ¢ë¢¥á⨠®ª® "Calculating free space..."
|
||
push bc
|
||
push hl
|
||
ld hl,win_free_disk ; ®¯¨á â¥«ì ®ª
|
||
call WinSimple ; ¢ë¢¥á⨠®ª®
|
||
pop hl
|
||
pop bc
|
||
ld a,c
|
||
push hl
|
||
bit 6,b ; ᯥª-ä®à¬ â
|
||
jr nz,get_free_spec
|
||
;----------------------------------------------------
|
||
; ‚ëç¨á«¨âì ᢮¡. ¬¥áâ® MS-DOS ¤¨áª¥
|
||
;----------------------------------------------------
|
||
ld c,3 ; ¨ä ® ¤¨áª¥
|
||
rst ToDSS
|
||
jr nc,get_free_ok
|
||
ld bc,0
|
||
ld e,c
|
||
ld d,c
|
||
jr get_free__
|
||
;
|
||
get_free_ok:
|
||
; a=à §¬¥à ª« áâ¥à ¢ ᥪâ®à å
|
||
; bc=à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||
; de=᢮¡. ª« áâ¥à®¢
|
||
push de
|
||
ld hl,0
|
||
add hl,bc ; ¢ëç¨á«¨âì à §¬¥à ª« áâ¥à
|
||
dec a
|
||
jr nz,$-2
|
||
ex de,hl ; de=à §¬¥à ª« áâ¥à
|
||
pop bc ; ᢮¡. ª« áâ¥à®¢
|
||
call mul_bcde ; bc*de=hlbc ᢮¡. ¬¥áâ®
|
||
ex de,hl
|
||
get_free__:
|
||
pop hl
|
||
; ¬«.à §àï¤
|
||
ld (hl),c ; hl=free_space_disk (free_space_disk1)
|
||
inc hl
|
||
ld (hl),b
|
||
inc hl
|
||
; áâ.à §àï¤
|
||
ld (hl),e
|
||
inc hl
|
||
ld (hl),d
|
||
; § ªàëâì ®ª® "Calculating free space..."
|
||
jp CloseWinSimple
|
||
|
||
|
||
|
||
;----------------------------------------------------
|
||
; ‚ëç¨á«¨âì ᢮¡. ¬¥á⮠ᯥªâà㬮¢áª®¬ ¤¨áª¥
|
||
; (®â¤¥«¨âì trd-ä®à¬ â ®â scl-ä®à¬ â )
|
||
; (655,360 ¡ ©â trd-¤¨áª )
|
||
; ¢å®¤: hl 㦥 ¢ á⥪¥
|
||
; a=®¬¥à ¤¨áª
|
||
;----------------------------------------------------
|
||
get_free_spec:
|
||
; ¢ëç¨á«¨âì ç¨á«® ᢮¡. ª« áâ¥à®¢
|
||
; ...
|
||
;
|
||
ld de,640; ; ᢮¡. ª« áâ¥à®¢
|
||
;
|
||
ld a,1 ; à §¬¥à ª« áâ¥à ¢ ᥪâ®à å
|
||
ld bc,1024 ; à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||
jr get_free_ok ; § ¯®«¨âì áâபã
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Ž¡®¢«¥¨¥ ᯨ᪠¯ ¥«¨ ¯à¨ ¢¨£ 樨 ¯® ¯ ¯ª ¬
|
||
;-----------------------------------------------------------
|
||
fresh_list_panel:
|
||
call read_new_folder ; ®¢ë© ᯨ᮪ ª â «®£ + à §¬¥à ¯ ¯ª¨
|
||
ret c
|
||
call sorting ; à §¤¥«ìë© á¯¨á®ª 㪠§ ⥫¥© + á®àâ. ᯨáª
|
||
fresh_list_pan:
|
||
; ¢ëç¨á«¨âì ᢮¡. ¬¥áâ® ¤¨áª
|
||
ld hl,free_space_disk ; ï祩ª¨ ªâ. ¯ ¥«¨
|
||
ld a,(format_mode)
|
||
ld b,a
|
||
ld a,(disk)
|
||
ld c,a
|
||
db 3Eh ; ld a,..
|
||
enter_to_folder:
|
||
db false ; ä« £ " ¢¨£ æ¨ï ¯® ¯ ¯ª ¬"
|
||
or a
|
||
call z,get_free_space
|
||
db 21h ; ld hl,..
|
||
fresh_list_point:
|
||
dw 0 ; á®åà. ¯®«®¦. 㪠§ ⥫ï
|
||
ld (cur_pointer),hl ; ⥪. ¯®«®¦. 㪠§ ⥫ï
|
||
db 21h ; ld hl,..
|
||
fresh_list_offset:
|
||
dw 0 ; á®åà. ᬥé. ᯨáª
|
||
ld (offset_list),hl ; ᬥ饨¥ ᯨáª
|
||
jp A20FC ; ¢ë¢®¤ ¯ ¥«¨
|