mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
361 lines
6.9 KiB
NASM
Executable File
361 lines
6.9 KiB
NASM
Executable File
max_width_dest equ 34 ; à §¬¥à ¡ãä¥à áâப¨ ®¯¨á ⥫¥©
|
||
|
||
|
||
|
||
;--------------------------------------------------------------
|
||
; ‘à ¢¥¨¥ ¯ã⥩ (¨ ¤¨áª®¢) ¤¢ãå ¯ ¥«¥©
|
||
; ¢ë室: Z - à ¢ë
|
||
; NZ - ¥ à ¢ë
|
||
;--------------------------------------------------------------
|
||
compare_path_two_panels:
|
||
; áà ¢¨âì ¤¨áª¨
|
||
ld a,(disk) ; ¤¨áª ªâ. ¯ ¥«¨
|
||
ld hl,disk1 ; ¤¨áª ¯ áá. ¯ ¥«¨
|
||
cp (hl)
|
||
ret nz
|
||
; áà ¢¨âì ¯ãâ¨
|
||
ld hl,(__buff) ; ¯ãâì ªâ. ¯ ¥«¨
|
||
ld de,(__buff1) ; ¯ãâì ¯ áá. ¯ ¥«¨
|
||
comp_path_two_pan:
|
||
ld a,(de)
|
||
cp (hl)
|
||
ret nz
|
||
inc de
|
||
inc hl
|
||
ld a,(de)
|
||
or a
|
||
jr nz,comp_path_two_pan
|
||
cp (hl)
|
||
ret
|
||
|
||
|
||
|
||
|
||
;--------------------------------------------------------------
|
||
; <20>®¨áª ®â¬¥ç¥®© § ¯¨á¨ ¢ ᯨ᪥ ¯ ¥«¨
|
||
; (¯®¨áª ¨¤¥â á ç « ᯨ᪠)
|
||
; ¢ë室: hl= ©¤¥ ï § ¯¨áì
|
||
; de=ï祩ª âਡãâ § ¯¨á¨
|
||
; a= âਡãâ § ¯¨á¨
|
||
; "Carry" - ¥ 諨 § ¯¨áì
|
||
;--------------------------------------------------------------
|
||
scan_mark_records:
|
||
ld bc,(all_files) ; ç¨á«® § ¯¨á¥© ᯨáª
|
||
inc bc
|
||
ld hl,0 ; ç âì á ç « ᯨáª
|
||
ld (scan_mark_numb+1),bc
|
||
ld (scan_mark_loop+1),hl
|
||
scan_mark_loop:
|
||
ld hl,0 ; á«¥¤. ¯®«®¦¥¨¥ ¢ ᯨ᪥
|
||
scan_mark_numb:
|
||
ld bc,0 ; ç¨á«® ®áâ ¢è¨åáï § ¯¨á¥© ¢ ᯨ᪥
|
||
push hl
|
||
call get_record1 ; ᪠¨à. ᯨ᮪ ¯ ¥«¨
|
||
ld (scan_mark_rec+1),hl
|
||
ld (attr_record),a ; âਡãâ ä ©« (£«®¡. ï祩ª )
|
||
inc de
|
||
pop hl
|
||
inc hl ; á«¥¤. § ¯¨áì
|
||
dec bc
|
||
ld (scan_mark_loop+1),hl
|
||
ld (scan_mark_numb+1),bc
|
||
ld a,c
|
||
or b
|
||
scf
|
||
ret z ; ª®¥æ ᯨáª
|
||
ld a,(de) ;+12 ï祩ª ®â¬¥âª¨
|
||
and 80h
|
||
jr z,scan_mark_loop ; § ¯¨áì ¥ ®â¬¥ç¥
|
||
; 諨 § ¯¨áì
|
||
scan_mark_rec:
|
||
ld hl,0 ; ¤à¥á § ¯¨á¨
|
||
dec de
|
||
ld a,(de) ;+11 âਡãâ ä ©«
|
||
or a ; á¡à. "Carry"
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Ž£à ¨ç¥¨¥ ¡à ®© áâப¨ ¯¥à¢ë¬¨ 34-¬ï ᨬ¢®« ¬¨
|
||
; á æ¥â஢ª®©.
|
||
; ¢å®¤: hl=¡ãä¥à ¢¢®¤ ~input line~
|
||
; de=ªã¤
|
||
;-----------------------------------------------------------
|
||
copy_dest_name:
|
||
push hl
|
||
push de
|
||
; ®ç¨áâ¨âì áâப㠮¯¨á ⥫ï
|
||
ld b,max_width_dest ; 34 à §¬¥à ¡ãä¥à
|
||
ld a," "
|
||
ld (de),a
|
||
inc de
|
||
djnz $-2
|
||
xor a
|
||
ld (width_dest1__),a ; á¡à. ä« £ ¯¥à¥¯®«. áâப¨
|
||
dec hl
|
||
ld a,(hl) ;+4 ¤«¨ ¢¢¥¤. áâப¨
|
||
cp max_width_dest+1 ; 34+1
|
||
jr c,$+7 ; ¤«¨ ¯ã⨠=< 32
|
||
ld a,max_width_dest ; 34
|
||
ld (width_dest1__),a ; ãáâ. ä« £ ¯¥à¥¯®«. áâப¨
|
||
width_dest__:
|
||
ld c,a
|
||
; æ¥â஢ª ¨¬¥¨
|
||
ld a,max_width_dest ; 34 è¨à¨ ¡ãä¥à áâப¨
|
||
sub c
|
||
srl a ; /2
|
||
ld e,a
|
||
ld d,0
|
||
ld b,d
|
||
pop hl ; ªã¤
|
||
add hl,de
|
||
ex de,hl ; de= ç «® áâப¨ ¢ ®¯¨á ⥫¥
|
||
pop hl ; ®âªã¤
|
||
; ᪮¯¨à. áâபã
|
||
ld a,(hl)
|
||
cp "a"
|
||
jr c,$+4
|
||
res 5,a ; a..z -> A..Z
|
||
ld (de),a
|
||
inc hl
|
||
inc de
|
||
dec bc
|
||
ld a,c
|
||
or b
|
||
jr nz,$-13
|
||
db 3Eh ; ld a,..
|
||
width_dest1__:
|
||
db false
|
||
or a
|
||
ret z
|
||
; § ¯¨á âì ª®æ¥¢ë¥ ".."
|
||
dec de
|
||
dec de
|
||
ld a,"."
|
||
ld (de),a
|
||
inc de
|
||
ld (de),a
|
||
ret
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‘ª®¯¨à®¢ âì ¨á室®¥ ¨¬ï ä ©« /¯ ¯ª¨ "file.ext"
|
||
; ¢ áâப㠮¯¨á â¥«ï ®ª .
|
||
; ¢å®¤: bc=ªã¤
|
||
; ¢ë室: CF - ".." ⥪ãé ï § ¯¨áì
|
||
;-------------------------------------------------
|
||
copy_source_name:
|
||
ld hl,(mark_files) ; ç¨á«® ¢ë¤¥«. ä ©«®¢
|
||
ld a,l
|
||
or h
|
||
ret nz
|
||
call get_record ; ⥪. § ¯¨áì
|
||
ld (attr_record),a ; âਡãâ ä ©« (£«®¡. ï祩ª )
|
||
ld a,(hl) ; ¨¬ï ä ©«
|
||
cp "."
|
||
scf
|
||
ret z ; ⥪ã騩 ".."
|
||
;-----------------------------------------------------------
|
||
; ‘ª®¯¨à®¢ âì ¨¬ï ä ©« "file.ext" ¨ ®âæ¥â஢ âì ¢ áâப¥
|
||
; ¢å®¤: hl=§ ¯¨áì ä ©«
|
||
; bc=áâப ®¯¨á â¥«ï ®ª
|
||
; ¢ë室: § ¯®«¥ë© ¡ãä¥à temp_fname
|
||
;-----------------------------------------------------------
|
||
copy_cur_fname:
|
||
call copyfname
|
||
; æ¥â஢ª ¨¬¥¨
|
||
ld a,12 ; ¡ãä¥à áâப¨
|
||
sub c
|
||
srl a ; /2
|
||
ld l,a
|
||
ld h,0
|
||
ld b,h
|
||
add hl,de
|
||
ex de,hl ; de= ç «® áâப¨ ¢ ®¯¨á ⥫¥
|
||
push bc
|
||
ld hl,work_buffer ; ®âªã¤
|
||
ldir
|
||
pop bc
|
||
ld hl,work_buffer ; ®âªã¤
|
||
ld de,temp_fname ; ªã¤
|
||
ldir
|
||
xor a
|
||
ld (de),a
|
||
ret
|
||
|
||
|
||
; ¢å®¤: bc=ªã¤
|
||
; ¢ë室: CF - ".." ⥪ãé ï § ¯¨áì
|
||
copyname:
|
||
ld hl,(mark_files) ; ç¨á«® ¢ë¤¥«. ä ©«®¢
|
||
ld a,l
|
||
or h
|
||
ret nz
|
||
call get_record ; ⥪. § ¯¨áì
|
||
ld (attr_record),a ; âਡãâ ä ©« (£«®¡. ï祩ª )
|
||
ld a,(hl) ; ¨¬ï ä ©«
|
||
cp "."
|
||
scf
|
||
ret z ; ⥪ã騩 ".."
|
||
call copyfname
|
||
ld hl,work_buffer ; ®âªã¤
|
||
xor a
|
||
ld b,a
|
||
push bc
|
||
ldir
|
||
;inc hl
|
||
ld (hl),a
|
||
ex de,hl
|
||
ld (hl)," "
|
||
inc hl
|
||
ld (hl),"t"
|
||
inc hl
|
||
ld (hl),"o"
|
||
inc hl
|
||
ld (hl),":"
|
||
inc hl
|
||
pop bc
|
||
ld a,12
|
||
sub c
|
||
ret z
|
||
; ¤®¯¨á âì ¯à®¡¥«ë
|
||
ld (hl)," "
|
||
inc hl
|
||
dec a
|
||
jr nz,$-4
|
||
ret
|
||
|
||
|
||
|
||
|
||
; ᪮¯¨à. ¨¬ï ä ©«
|
||
; ¢å®¤: bc=ªã¤ (¡ãä¥à 12 ¡ ©â)
|
||
; hl=¨¬ï ä ©«
|
||
; ¢ë室: c=¤«¨ ¨¬¥¨
|
||
copyfname:
|
||
; ®ç¨áâ¨âì áâப㠮¯¨á ⥫ï
|
||
push bc
|
||
ld a," "
|
||
ld d,12
|
||
ld (bc),a
|
||
inc bc
|
||
dec d
|
||
jr nz,$-3
|
||
; ¨¬ï ¢ ä®à¬ â file.ext
|
||
ld ix,work_buffer ; ¢à¥¬. ¡ãä¥à
|
||
ld d,1 ; ¥ ¬¥ïâì ॣ¨áâà ¡ãª¢
|
||
bit 4,a ; âਡãâ ä ©«
|
||
jr nz,$+19 ; ¯ ¯ª
|
||
ld a,(format_mode) ; ä®à¬ â ªâ. ¯ ¥«¨
|
||
and form_trd ; 6-© ¡¨â ᯥª-ä®à¬ â
|
||
jr z,$+7
|
||
call fill_med_spec_name ; ᯥª-¨¬ï
|
||
jr $+10
|
||
call fill_med1__ ; "Filename.Ext" (¢á¥£¤ ¢ë¢®¤¨â 12 ᨬ¢.)
|
||
jr $+5
|
||
call dir_name_med ; ¢ë¢®¤ ¯ ¯ª¨ (¢á¥£¤ ¢ë¢®¤¨â 12 ᨬ¢.)
|
||
; ã§ âì ¤«¨ã ¨¬¥¨
|
||
ld a,15 ; ª®áâ â
|
||
sub e
|
||
ld c,a
|
||
pop de ; ªã¤
|
||
ret
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Ž£à ¨ç¥¨¥ ¡à ®© áâப¨ ¯¥à¢ë¬¨ 34-¬ï ᨬ¢®« ¬¨
|
||
; ¢å®¤: hl=¡ãä¥à ¢¢®¤ ~input line~
|
||
; de=ªã¤
|
||
;-----------------------------------------------------------
|
||
copy_dstname:
|
||
push hl
|
||
push de
|
||
; ®ç¨áâ¨âì áâப㠮¯¨á ⥫ï
|
||
ld b,max_width_dest ; 34 à §¬¥à ¡ãä¥à
|
||
ld a," "
|
||
ld (de),a
|
||
inc de
|
||
djnz $-2
|
||
xor a
|
||
ld (width_dst1__),a ; á¡à. ä« £ ¯¥à¥¯®«. áâப¨
|
||
dec hl
|
||
ld a,(hl) ;+4 ¤«¨ ¢¢¥¤. áâப¨
|
||
cp max_width_dest+1 ; 34+1
|
||
jr c,$+7 ; ¤«¨ ¯ã⨠=< 32
|
||
ld a,max_width_dest ; 34
|
||
ld (width_dst1__),a ; ãáâ. ä« £ ¯¥à¥¯®«. áâப¨
|
||
ld c,a
|
||
ld b,0
|
||
pop de ; ªã¤
|
||
pop hl ; ®âªã¤
|
||
; ᪮¯¨à. áâபã
|
||
ld a,(hl)
|
||
cp "a"
|
||
jr c,$+4
|
||
res 5,a ; a..z -> A..Z
|
||
ld (de),a
|
||
inc hl
|
||
inc de
|
||
dec bc
|
||
ld a,c
|
||
or b
|
||
jr nz,$-13
|
||
db 3Eh ; ld a,..
|
||
width_dst1__:
|
||
db false
|
||
or a
|
||
ret z
|
||
; § ¯¨á âì ª®æ¥¢ë¥ ".."
|
||
dec de
|
||
dec de
|
||
ld a,"."
|
||
ld (de),a
|
||
inc de
|
||
ld (de),a
|
||
ret
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‘ª®¯¨à®¢ âì ¨¬ï ä ©« "file.ext" ¨ ®âæ¥â஢ âì ¢ áâப¥
|
||
; ¯à¨ ᪠¨à®¢ ¨¨ ¯ ¯ª¨.
|
||
; ¢å®¤: hl=¨¬ï ä ©« ¢ ä®à¬ ⥠file.ext
|
||
; de=áâப ®¯¨á â¥«ï ®ª
|
||
;-----------------------------------------------------------
|
||
copy_cur_fname_alt:
|
||
; ®ç¨áâ¨âì áâப㠮¯¨á ⥫ï
|
||
push de
|
||
ld a," "
|
||
ld bc,0C00h ; áç¥â稪¨
|
||
ld (de),a
|
||
inc de
|
||
djnz $-2
|
||
pop de
|
||
push hl
|
||
; ã§ âì ¤«¨ã ¨¬¥¨
|
||
ld a,(hl)
|
||
or a
|
||
jr z,$+6
|
||
inc c ; ++¤«¨ ¨¬¥¨
|
||
inc hl
|
||
jr $-6
|
||
; æ¥â஢ª ¨¬¥¨
|
||
ld a,12 ; ¡ãä¥à áâப¨
|
||
sub c
|
||
srl a ; /2
|
||
ld l,a
|
||
ld h,0
|
||
ld b,h
|
||
add hl,de
|
||
ex de,hl ; de= ç «® áâப¨ ¢ ®¯¨á ⥫¥
|
||
pop hl ; ®âªã¤
|
||
ldir
|
||
ret
|