Estex-DSS/DSS/API/Attribute.asm
2025-10-11 15:46:43 +10:00

79 lines
1.7 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

////////////////////////////////////////////////////////////////////////
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
; A - ATTRIB
; B - MODE:
; 0 GET ATTRIB
; 1 SET ATTRIB
; OUTPUT: A - ATTRIB
////////////////////////////////////////////////////////////////////////
ATTRIB: ; Current Dir ;[x] 15/10/23
LD C,A
;
PUSH HL
PUSH BC
CALL DIR_PATH_CHECK
POP BC
POP HL
RET C
; ­  á«ãç © ç⥭¨ï ¤«ï ®¡å®¤  ¯à®¢¥àª¨ CHECK_64kb_CLUSTER
LD A,1
LD (OPEN_FN.TMP),A
;
LD A,C
;
;
INC B
DJNZ .B_1
; B = 0
.READ: CALL .OPENATR ;R002
RET C
LD A,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
RET
;
.B_1: DJNZ .B_2
;
.WRITE_FN: AND FAT_ATTR.NoVolID ; [x] 2/12/23 ä¨ªá ¤«ï volume ID
.WRITE: PUSH AF
XOR A
LD (OPEN_FN.TMP),A
CALL .OPENATR ;R002
CALL NC,OPEN_FN.FM
;
POP BC
RET C
SET 7,(IY+_sFM.ACCESS_MODE)
;RES 3,B ;CLEAR LABEL ATTR ;R003
LD (IY+_sFM.FS_REC.ATTRIBUT),B
PUSH BC
CALL CLOSE_FN
.error: POP BC
RET C
LD A,B
RET
;
;
; ¢ë室: ¥á«¨ CF = 0, â® DE = record index
;!TEST 9/11/23 record index
.OPENATR: CALL SetPath_GetName ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
RET C
; ¥á«¨ íâ® ­¥ ç⥭¨¥, â® ¯à®¢¥à塞 à §¬¥à ª« áâ¥à 
LD A,(OPEN_FN.TMP)
AND A
CALL Z,CHECK_64kb_CLUSTER
RET C
;
CALL MASK
RET C
LD A,FAT_ATTR.NoVolID
JP SEARCH.Custom
;
; [ ] ; !TODO ¤«ï ª®¬ ­¤ë LABEL ¢ Shell
; 1. ¯à®¢¥à¨âì çâ® ¢ HL 㪠§ ­  ⮫쪮 ¬¥âª  ¢ ª ¢ë窠å
; 2. ¥á«¨ ¬¥âª  ¡¥§ ­¥¤®¯ãá⨬ëå ᨬ¢®«®¢, â® ¤¥« ¥¬ ¥ñ ­¥
; ⮫쪮 ¢ BPB, ­® ¨ ­  ª®à­¥¢®¬ à §¤¥«¥, ¨­ ç¥ 㤠«ï¥¬ ­  ª®à­¥¢®¬
; 3. ®âªà뢠¥¬ âà¥¡ã¥¬ë© ¤¨áª ç¥à¥§ .force, ç⮡ á¡à®á¨âì ªíè¨
.B_2: DJNZ .error_fn
;
.error_fn: LD A,DSS_Error.sys.INVALID_FUNCTION
SCF
RET