mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-11-12 11:14:44 +03:00
Core: -bug in ATTRIB with OPEN_FN.FM
This commit is contained in:
1 parent
dbc5088978
commit
4083da9fa5
8 files changed
+72
-123
No files matched your search
+49
-43
@@ -35,49 +35,55 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
;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
|
||||
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
|
||||
;
|
||||
.B_1: DJNZ .error_fn
|
||||
.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 ;!HARDCODE attribute bit
|
||||
LD (IY+_sFM.FS_REC.ATTRIBUT),B
|
||||
PUSH BC
|
||||
CALL CLOSE_FN
|
||||
.error: POP BC
|
||||
RET C
|
||||
LD A,B
|
||||
RET
|
||||
;R002
|
||||
.OPENATR:
|
||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
||||
;LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
||||
;
|
||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
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 ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||||
;
|
||||
;
|
||||
;R002
|
||||
RET
|
||||
+4
-4
@@ -28,10 +28,10 @@ OPEN_FN: ;!TEST Current Dir ;[x] 15/10/23
|
||||
RET C
|
||||
.FILE: CALL SEARCH.File ; enter point from EXEC, CREATE
|
||||
RET C
|
||||
;!TEST 9/11/23 record index
|
||||
PUSH DE ; á®åà 塞 㪠§ â¥«ì § ¯¨áì ¢ ª â «®£¥ FS (¯®«ãç¥ ¨§ SEARCH)
|
||||
;R002 ;
|
||||
.FM: CALL GET_FM ; enter point from ATTRIB
|
||||
;R002 ;!TEST 9/11/23 record index
|
||||
.FM: PUSH DE ; á®åà 塞 㪠§ â¥«ì § ¯¨áì ¢ ª â «®£¥ FS (¯®«ãç¥ ¨§ SEARCH)
|
||||
;
|
||||
CALL GET_FM ; enter point from ATTRIB
|
||||
RET C
|
||||
LD A,C
|
||||
EX AF,AF'
|
||||
|
||||
Reference in new issue
Block a user