Estex-DSS/DSS/API/Attribute.asm
2025-10-30 23:25:12 +10:00

80 lines
1.7 KiB
NASM
Raw Permalink 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
; DE = record index
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