mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
110 lines
1.9 KiB
NASM
110 lines
1.9 KiB
NASM
////////////////////////////////////////////////////////////////////////
|
||
; ”ãªæ¨ï #1C. “¤ «¥¨¥ ª â «®£ .
|
||
; Œ®¦® 㤠«¨âì ⮫쪮 ¯ãá⮩ ª â «®£.
|
||
;
|
||
; ¢å®¤: HL - 㪠§ â¥«ì ¨¬ï ª â «®£
|
||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||
;
|
||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||
////////////////////////////////////////////////////////////////////////
|
||
RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
||
PUSH HL
|
||
CALL DIR_PATH_CHECK
|
||
POP HL
|
||
RET C
|
||
CALL .START
|
||
PUSH AF
|
||
LD HL,CurrentDirectory
|
||
CALL CHDIR
|
||
CALL DIR_PATH_CHANGE.Current
|
||
POP AF
|
||
RET
|
||
;
|
||
.START: CALL GETWORD
|
||
RET C
|
||
CALL MASK
|
||
RET C
|
||
;!TEST optimization
|
||
;LD HL,MASKARE
|
||
;LD BC,11
|
||
;LD A,"?"
|
||
;CPIR
|
||
;LD A,DSS_Error.sys.INVALID_NAME
|
||
;SCF
|
||
CALL CHECK_NAME
|
||
;
|
||
RET Z
|
||
CALL LOADDIR
|
||
CALL SEARCH.Dir
|
||
RET C
|
||
LD HL,(HANDBUF+_sFM.ST_CLUSTER)
|
||
PUSH IX
|
||
.RMD17: PUSH HL
|
||
CALL NSECTOR
|
||
LD A,(CORE_BUFFERS.BootSector.S_P_C)
|
||
.RMD12: PUSH AF
|
||
PUSH HL
|
||
PUSH IX
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
IN A,(SLOT0)
|
||
OUT (SLOT3),A
|
||
|
||
LD DE,CORE_BUFFERS.SECBUF+#C000
|
||
LD BC,1*256 + Dss.DRV.Read
|
||
LD A,(FatBuffer.DRIVE)
|
||
RST ToDSS.DRV
|
||
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
|
||
LD B,16 ;!HARDCODE 16 * 32 = 512; 32 - à §¬¥à § ¯¨á¨, 512 - à §¬¥à áç¨â ®£® ᥪâ®à
|
||
LD HL,CORE_BUFFERS.SECBUF
|
||
.RMD10: LD A,(HL)
|
||
OR A
|
||
JP Z,.RMD15 ;DIR EMPTY
|
||
CP "."
|
||
JR Z,.RMD14
|
||
CP #E5 ;!HARDCODE ¡ ©â 㤠«¥¨ï ä ©«
|
||
JR Z,.RMD14
|
||
LD DE,11 ;!HARDCODE ᬥé. ¤® ¡ ©â âਡã⮢
|
||
ADD HL,DE
|
||
LD A,(HL)
|
||
SBC HL,DE
|
||
;BIT 3,A
|
||
AND %0000'1000
|
||
JP Z,.error ;DIR NOT EMPTY
|
||
.RMD14: LD DE,#0020
|
||
ADD HL,DE
|
||
DJNZ .RMD10
|
||
|
||
POP IX
|
||
POP HL
|
||
INC IX
|
||
LD A,XH
|
||
OR XL
|
||
JR NZ,.RMD11
|
||
INC HL
|
||
.RMD11: POP AF
|
||
DEC A
|
||
JR NZ,.RMD12
|
||
POP HL ; ®¬¥à ª« áâ¥à
|
||
CALL R_F_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||
EX DE,HL ; hl=®¬¥à á«¥¤. ª« áâ¥à
|
||
JR NC,.RMD17 ; ¥ ª®¥æ 楯®çª¨
|
||
.RMD18: POP IX
|
||
JP DEL_FN.DELETE ; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥ ï"
|
||
.RMD15: POP IX
|
||
POP HL
|
||
POP AF
|
||
POP HL
|
||
JR .RMD18
|
||
.error: POP IX
|
||
POP HL
|
||
POP AF
|
||
POP HL
|
||
POP IX
|
||
LD A,DSS_Error.sys.DIR_NOT_EMPTY
|
||
SCF
|
||
RET
|
||
; |