mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
101 lines
2.2 KiB
NASM
Executable File
101 lines
2.2 KiB
NASM
Executable File
old1: dw 0 ; ¯®«®¦. 㪠§ ⥫ï
|
||
old2: dw 0 ; ᬥé. ᯨáª
|
||
old3: dw 0 ; ç¨á«® § ¯¨á¥©
|
||
; ä« £ ᬥë ⥪. ¤¨áª ¨«¨ ¯ãâ¨
|
||
change: db false ; 01/00 ¬¥ï«áï/¥â
|
||
|
||
|
||
|
||
|
||
; ‘®åà ¨âì ¯®«®¦. 㪠§ â¥«ï ¨ ᯨáª
|
||
save_pos_list:
|
||
ld hl,(cur_pointer) ; áâ ஥ ¯®«®¦. 㪠§ ⥫ï
|
||
ld (old1),hl
|
||
ld hl,(offset_list) ; áâ ஥ ᬥé. ᯨáª
|
||
ld (old2),hl
|
||
ld hl,(all_files) ; áâ ஥ ç¨á«® § ¯¨á¥©
|
||
ld (old3),hl
|
||
ret
|
||
|
||
|
||
; “áâ ®¢¨âì ¯®«®¦. 㪠§ â¥«ï ¨ ᯨáª
|
||
; ¯®á«¥ ®¢®£® ç⥨ï ᯨ᪠.
|
||
set_newpos_list:
|
||
ld a,(change) ; ä« £ ᬥë ⥪. ¤¨áª ¨«¨ ¯ãâ¨
|
||
or a
|
||
jr nz,set_zero_pos ; ¬¥ï«áï, á¡à. ¯®«®¦. 㪠§ ⥫ï
|
||
ld de,(all_files) ; ®¢®¥ ç¨á«® § ¯¨á¥©
|
||
ld hl,(old3) ; ¯à¥¦¥¥ ç¨á«® § ¯¨á¥©
|
||
and a
|
||
sbc hl,de ; ç¨á«® § ¯¨á¥© ¨§¬¥¨«®áì ?
|
||
jr nz,set_new_pos ; ¤
|
||
set_old_pos:
|
||
ld hl,(old1) ; ¯à¥¦¥¥ ¯®«®¦. 㪠§ ⥫ï
|
||
ld (cur_pointer),hl
|
||
ld hl,(old2) ; ¯à¥¦¥¥ ᬥé. ᯨáª
|
||
ld (offset_list),hl
|
||
ret
|
||
set_new_pos:
|
||
ld hl,(old1) ; ¯à¥¦¥¥ ¯®«®¦. 㪠§ ⥫ï
|
||
ld bc,(old2) ; ¯à¥¦¥¥ ᬥé. ᯨáª
|
||
add hl,bc
|
||
and a
|
||
sbc hl,de
|
||
jr c,set_old_pos
|
||
; ¯à¥¦¥¥ ¯®«®¦. 㪠§ ⥫ï > ®¢®£® ç¨á« § ¯¨á¥©
|
||
jr set_to_end_list ; ¢ ª®¥æ ᯨáª
|
||
|
||
; á¡à®á¨âì ¯®«®¦. 㪠§ â¥«ï ¨ ᯨáª
|
||
; ¤¨áª ¨«¨ ¯ãâì ¬¥ï«áï.
|
||
set_zero_pos:
|
||
xor a
|
||
ld l,a
|
||
ld h,a
|
||
ld (change),a ; á¡à. ä« £ ᬥë ⥪. ¤¨áª ¨«¨ ¯ãâ¨
|
||
ld (offset_list),hl ; ᬥé. ᯨáª
|
||
set_zr: ld (cur_pointer),hl ; ⥪. ¯®«®¦. 㪠§ ⥫ï
|
||
ret
|
||
|
||
; ãáâ. 㪠§ â¥«ì ª®¥æ ᯨáª
|
||
set_to_end_list:
|
||
ld bc,(all_files) ; ç¨á«® § ¯¨á¥©
|
||
ld hl,(cur_pointer)
|
||
ld de,(offset_list) ; ᬥé. ᯨáª
|
||
add hl,de
|
||
inc hl
|
||
ld a,l
|
||
sub c
|
||
ld a,h
|
||
sbc a,b
|
||
ret z ; 㪠§ â¥«ì ¢ ª®æ¥ ᯨáª
|
||
ld de,(_0D01+1) ; à §¬¥à áâà ¨æë - 1
|
||
ld l,c ; hl=all_files
|
||
ld h,b
|
||
call cmphlde
|
||
jr nc,set_end_lst2
|
||
; ç¨á«® ä ©«®¢ ¬¥ìè¥ á¯¨áª ¯ ¥«¨
|
||
set_end_lst1:
|
||
dec hl
|
||
jr set_zr ; ãáâ. ⥪. ¯®«®¦. 㪠§ ⥫ï
|
||
;
|
||
set_end_lst2:
|
||
ld bc,-1 ; áç¥â稪
|
||
dec hl ; --all_files
|
||
inc bc
|
||
call cmphlde ; hl ¨ "à §¬¥à áâà ¨æë - 1"
|
||
jr nc,$-5
|
||
ld hl,(offset_list) ; ᬥé. ᯨáª
|
||
and a
|
||
sbc hl,bc
|
||
jr c,set_end_lst3
|
||
; 㪠§ â¥«ì ¢ ¯à¥¤¥« å ¯®á«¥¤. áâà ¨æë ᯨáª
|
||
ex de,hl
|
||
jr set_end_lst1
|
||
;
|
||
set_end_lst3:
|
||
dec bc
|
||
ld (offset_list),bc
|
||
inc de
|
||
ld (cur_pointer),de
|
||
ret
|