mirror of
https://github.com/Tolik-Trek/Crazy-Blaster.git
synced 2026-06-15 09:31:37 +03:00
102 lines
2.2 KiB
NASM
102 lines
2.2 KiB
NASM
////////////////////////////////////////////////////////////////////////
|
||
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
||
; A - ATTRIB
|
||
; B - MODE
|
||
; B = #00 GET ATTRIB
|
||
; B = #01 SET ATTRIB
|
||
; OUTPUT: A - ATTRIB
|
||
////////////////////////////////////////////////////////////////////////
|
||
ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||
LD C,A
|
||
;
|
||
IF OLD_DSS_FOR_OLD_EXE
|
||
; [ ] 10/06/24
|
||
LD A,(EXE_VERSION)
|
||
OR A
|
||
JR Z,.old_EXE
|
||
;
|
||
ENDIF
|
||
;
|
||
PUSH HL
|
||
PUSH BC
|
||
CALL DIR_PATH_CHECK
|
||
POP BC
|
||
POP HL
|
||
RET C
|
||
.old_EXE: 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,(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
|
||
;!TEST ;[x] 16/11/23 optimize get attribute
|
||
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
|
||
;R002
|
||
; ¢ë室: ¥á«¨ CF = 0, â® DE = record index
|
||
;!TEST 9/11/23 record index
|
||
.OPENATR: ;!TEST ;[x] 16/11/23 optimize get attribute
|
||
;LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
||
;
|
||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||
RET C
|
||
; [ ] 26/06/2024
|
||
CALL CHECK_64kb_CLUSTER
|
||
RET C
|
||
;
|
||
CALL MASK
|
||
RET C
|
||
LD A,FAT_ATTR.NoVolID
|
||
;!TEST ;[x] 16/11/23 optimize get attribute
|
||
JP SEARCH.Custom
|
||
;CALL SEARCH.Custom
|
||
;RET C ; § ¯¨áì ¥ ©¤¥
|
||
;JP OPEN.FM ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||
;
|
||
;
|
||
; [ ] ; !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 |