mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
88 lines
2.2 KiB
NASM
88 lines
2.2 KiB
NASM
////////////////////////////////////////////////////////////////////////
|
||
; ”ãªæ¨ï #10. <20>¥à¥¨¬¥®¢ ¨¥ ä ©« .
|
||
; ƒ«®¡ «ìë¥ á¨¬¢®«ë * ¨ ? ¢ ¨¬¥ å ä ©«®¢ ¥ ¤®¯ã᪠îâáï.
|
||
;
|
||
; ¢å®¤: HL - 㪠§ ⥫ì áâ ஥ ¨¬ï ä ©«
|
||
; DE - 㪠§ â¥«ì ®¢®¥ ¨¬ï ä ©«
|
||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||
;
|
||
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
||
; DE - "new_name.ext",#00 without simbols * ?
|
||
////////////////////////////////////////////////////////////////////////
|
||
RENAME: ; Current Dir 15/10/23
|
||
PUSH HL
|
||
PUSH DE
|
||
CALL DIR_PATH_CHECK.forceCheck
|
||
POP DE
|
||
POP HL
|
||
RET C
|
||
;
|
||
; !TODO ¢®âªãâì âãâ SetPath_GetName, ç⮡ ¬®¦® ¡ë«® 㤠«ïâì ¯® ®â®á¨â¥«ìë¬ ¯ãâï¬?
|
||
;
|
||
; [x] 26/06/2024 {64 kb cluster}
|
||
PUSH HL
|
||
CALL CHECK_64kb_CLUSTER
|
||
POP HL
|
||
RET C
|
||
|
||
;
|
||
PUSH DE
|
||
CALL MASK.name
|
||
POP DE
|
||
RET C
|
||
;
|
||
CALL CHECK_NAME
|
||
RET Z
|
||
;
|
||
PUSH DE
|
||
; !FIXIT ¤ã¡«¨àã¥â ¤¥©á⢨¥ ¨ ¤¨à¥ªâ®à¨ï 㦥 § £à㦥 ? ;!FIXIT check error
|
||
CALL LOADDIR ; [ ] big dir ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||
;
|
||
LD A,FAT_ATTR.NoSYSnoVolID
|
||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ "old_name.ext" ¢ ᯨ᪥ ¤¨áª
|
||
; DE - record index
|
||
POP HL
|
||
RET C
|
||
;
|
||
LD (.recordAddr),IX
|
||
; á«ãç © ¯¥à¥ª«î票ï áâà ¨æë ªíè ¯®á«¥ SEARCH.Custom "new_name.ext"
|
||
LD A,(CORE_BUFFERS.FS_Buffer.DirBlock)
|
||
LD (.DirBlock),A
|
||
LD (.recordIndex),DE
|
||
;
|
||
CALL MASK.name
|
||
RET C
|
||
;
|
||
CALL CHECK_NAME
|
||
RET Z
|
||
;
|
||
;PUSH IX
|
||
LD A,FAT_ATTR.NoSYSnoVolID
|
||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ "new_name.ext" ¢ ᯨ᪥ ¤¨áª
|
||
;POP IX
|
||
LD A,DSS_Error.sys.FILE_EXISTS
|
||
CCF
|
||
RET C
|
||
;
|
||
SET_PAGE_X DIRPAGE
|
||
PUSH AF
|
||
; á«ãç © ¯¥à¥ª«î票ï áâà ¨æë ªíè ¯®á«¥ SEARCH.Custom "new_name.ext"
|
||
LD A,(CORE_BUFFERS.FS_Buffer.DirBlock)
|
||
.DirBlock+1: CP 0
|
||
.recordIndex+1: LD HL,0
|
||
SCF ; ¥ ¯¥à¥áç¨âë¢ âì à §¬¥à ¤¨à¥ªâ®à¨¨
|
||
CALL NZ,LOADDIR.next ;!FIXIT check error
|
||
;
|
||
LD HL,CORE_BUFFERS.MASKARE
|
||
.recordAddr+1: LD DE,0
|
||
LD BC,11
|
||
LDIR
|
||
;
|
||
;CALL DELETE_LFN_RECORDS ; [ ] 㤠«¥¨¥ § ¯¨á¨ LFN
|
||
;
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
LD HL,(.recordIndex)
|
||
; [ ] big dir ¯¥à¥¤ ¢ âì ®âªã¤ ¨ ᪮«ìª® ¡ ©â®¢ ¨§¬¥¨«®áì ¢ ªíè, ç⮡ ¥ ¯¨á âì ¤¨áª «¨è¥£®
|
||
JP SAVEDIR
|
||
//////////////////////////////////////////////////////////////////////// |