mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
92 lines
2.0 KiB
NASM
92 lines
2.0 KiB
NASM
////////////////////////////////////////////////////////////////////////
|
||
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
||
; A - ATTRIB
|
||
; B - MODE:
|
||
; 0 GET ATTRIB
|
||
; 1 SET ATTRIB
|
||
; OUTPUT: A - ATTRIB
|
||
////////////////////////////////////////////////////////////////////////
|
||
ATTRIB: ;!TEST 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: ;!TEST ;[x] 16/11/23 optimize get attribute
|
||
;XOR A
|
||
;
|
||
CALL .OPENATR ;R002
|
||
RET C
|
||
;!TEST ;[x] 16/11/23 optimize get attribute
|
||
LD A,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
||
;LD B,(IY+_sFM.ATTRIBUT)
|
||
;PUSH BC
|
||
;CALL CLOSE
|
||
;POP BC
|
||
;RET C
|
||
;LD A,B
|
||
;
|
||
RET
|
||
;
|
||
.B_1: DJNZ .B_2
|
||
;
|
||
.WRITE_FN: AND FAT_ATTR.NoVolID ; [x] 2/12/23 ä¨ªá ¤«ï volume ID
|
||
.WRITE: PUSH AF
|
||
XOR A
|
||
;!TEST ;[x] 16/11/23 optimize get attribute
|
||
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 |