Estex-DSS/DSS/API/Create.asm
2024-01-09 00:06:14 +10:00

95 lines
1.5 KiB
NASM

////////////////////////////////////////////////////////////////////////
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
; A - File attribute
; OUTPUT: A - FM
////////////////////////////////////////////////////////////////////////
CREATE_FN:
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥­­ë© ä¨ªá ¤«ï volume ID
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
CALL NC,DEL_FN.DELETE ;FILE EXIST RECREAT
JR .DO
;
.NEW_FN:
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥­­ë© ä¨ªá ¤«ï volume ID
.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
LD A,DSS_Error.sys.FILE_EXISTS
CCF
RET C
;
.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
;
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
LD (.TMP),A
LD (.PATH0),HL
CALL GETWORD
RET C
; LD HL,TMPNAME
; LD DE,MASKARE
JP MASK
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
; OUTPUT: A - FM
CREAT_N EQU CREATE.NEW_FN
;