mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
113 lines
2.0 KiB
NASM
113 lines
2.0 KiB
NASM
////////////////////////////////////////////////////////////////////////
|
|
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
|
; A - File attribute
|
|
; OUTPUT: A - FM
|
|
////////////////////////////////////////////////////////////////////////
|
|
CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
|
PUSH HL
|
|
LD C,A
|
|
PUSH BC
|
|
CALL DIR_PATH_CHECK
|
|
POP BC
|
|
POP HL
|
|
RET C
|
|
LD A,C
|
|
;
|
|
CALL .Prepare
|
|
RET C
|
|
CALL SEARCH.File
|
|
; [x] fixed a bug with incorrect search when there were too many files in the directory 12/03/2024
|
|
;CALL NC,DEL_FN.DELETE ;FILE EXIST RECREAT
|
|
CALL NC,.FILE_EXISTS_DEL ;FILE EXIST RECREAT
|
|
CP DSS_Error.sys.FILE_NOT_FOUND
|
|
JR Z,.DO
|
|
SCF
|
|
RET
|
|
.FILE_EXISTS_DEL:
|
|
CALL DEL_FN.DELETE
|
|
LD A,DSS_Error.sys.FILE_NOT_FOUND
|
|
RET
|
|
;
|
|
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
|
; OUTPUT: A - FM
|
|
.NEW: ;!TEST Current Dir ;[x] 15/10/23
|
|
PUSH HL
|
|
LD C,A
|
|
PUSH BC
|
|
CALL DIR_PATH_CHECK
|
|
POP BC
|
|
POP HL
|
|
RET C
|
|
LD A,C
|
|
;
|
|
CALL .Prepare
|
|
RET C
|
|
CALL SEARCH.File
|
|
; [x] fixed a bug with incorrect search when there were too many files in the directory 12/03/2024
|
|
; LD A,DSS_Error.sys.FILE_EXISTS
|
|
; CCF
|
|
; RET C
|
|
JR NC,.FILE_EXISTS
|
|
CP DSS_Error.sys.FILE_NOT_FOUND
|
|
SCF
|
|
RET NZ
|
|
;
|
|
;
|
|
;no_file_found
|
|
.DO: LD HL,MASKARE
|
|
LD DE,HANDBUF
|
|
LD BC,11
|
|
LDIR
|
|
EX DE,HL
|
|
.TMP+1: LD A,0
|
|
LD (HL),A
|
|
INC HL
|
|
LD BC,#0A00 ;!HARDCODE
|
|
;
|
|
.loop1: LD (HL),C
|
|
INC HL
|
|
DJNZ .loop1
|
|
;AaRR
|
|
PUSH HL
|
|
CALL SYSTIME
|
|
CALL MK_TIME
|
|
POP HL
|
|
LD (HL),E
|
|
INC HL
|
|
LD (HL),D
|
|
INC HL
|
|
LD (HL),C
|
|
INC HL
|
|
LD (HL),B
|
|
INC HL
|
|
LD BC,#0600
|
|
;
|
|
.loop2: LD (HL),C
|
|
INC HL
|
|
DJNZ .loop2
|
|
;
|
|
CALL WRT_HND
|
|
RET C
|
|
;CALL SAVEDIR
|
|
.PATH0+1:
|
|
LD HL,0
|
|
XOR A
|
|
LD (OPEN_FN.TMP),A
|
|
JP OPEN_FN.FILE ;R008
|
|
.Prepare:
|
|
;AND #E7 ;R004 %76A00SHR = !FAT_ATTR ;!HARDCODE
|
|
AND FAT_ATTR.NoDIRnoVolID
|
|
LD (.TMP),A
|
|
LD (.PATH0),HL
|
|
CALL GETWORD
|
|
RET C
|
|
; LD HL,TMPNAME
|
|
; LD DE,MASKARE
|
|
JP MASK
|
|
;
|
|
; [x] fixed a bug with incorrect search when there were too many files in the directory 12/03/2024
|
|
.FILE_EXISTS:
|
|
LD A,DSS_Error.sys.FILE_EXISTS
|
|
CCF
|
|
RET
|
|
; |