DiskINF: костыль для атрибута 0. Настоял Савелий))

This commit is contained in:
Tolik 2025-03-07 23:09:47 +10:00
parent c19ce52143
commit 78c229e75a
5 changed files with 119 additions and 103 deletions

View File

@ -540,19 +540,26 @@ EXSTACK: DW CORE_BUFFERS.XSTACK.Spoint ;
; ;
; ‚ë室 ¨§ EXE-ä ©« : ; ‚ë室 ¨§ EXE-ä ©« :
; ;
; 1) Žá¢®¡®¦¤ îâáï ¢á¥ ¡«®ª¨ ¯ ¬ï⨠ª®â®àë¥ ¢ë¤¥«ï« áì ¤ ­­®¬ã ¯à¨«®¦¥­¨î. ; 1) Žá¢®¡®¦¤ îâáï ¢á¥ ¡«®ª¨ ¯ ¬ï⨠ª®â®àë¥ ¢ë¤¥«ï«¨áì ¤ ­­®¬ã ¯à¨«®¦¥­¨î.
; 2) ‚®ááâ ­ ¢«¨¢ îâáï áâà ­¨æë ª®â®àë¥ ¡ë«¨ ¯®¤ª«îç¥­ë ¤® § ¯ã᪠ EXE-ä ©« . ; 2) ‡ ªà뢠îâáï ¢á¥ ä ©«ë ®âªàëâë¥ ¯à¨«®¦¥­¨¥¬
; 3) ‚ᯮ¬¨­ ¥âáï á⥪. ; 3) ‚®ááâ ­ ¢«¨¢ îâáï áâà ­¨æë ª®â®àë¥ ¡ë«¨ ¯®¤ª«îç¥­ë ¤® § ¯ã᪠ EXE-ä ©« .
; 4) ॣ¨áâà A ¯®¬¥é ¥âáï ª®¤ ¢®§¢à â  ¨ ¢ë¯®«­ï¥âáï RET. ; 4) ‚ᯮ¬¨­ ¥âáï á⥪.
; 5) ॣ¨áâà A ¯®¬¥é ¥âáï ª®¤ ¢®§¢à â  ¨ ¢ë¯®«­ï¥âáï RET.
; ;
;///////////////////////////////////////////////////////////////////// ;/////////////////////////////////////////////////////////////////////
LEAVE: LD A,B LEAVE: LD A,R
PUSH AF ; INT ON/OFF
DI
;
LD A,B
LD (ErrorLevel),A LD (ErrorLevel),A
CALL FREE_PROCESS_MEMORY CALL FREE_PROCESS_MEMORY
;[x] 10/12/23 close EXE FMs ;[x] 10/12/23 close EXE FMs
CALL FREE_PROCESS_FMs CALL FREE_PROCESS_FMs
; ;
_mDECTASK _mDECTASK
;
POP DE ; INT ON/OFF
LD SP,(EXSTACK) LD SP,(EXSTACK)
; âãâ á⥪ ¢ ­ã«¥¢®© áâà ­¨æ¥! ; âãâ á⥪ ¢ ­ã«¥¢®© áâà ­¨æ¥!
POP AF ; -2 EXSTACK size for 1 task POP AF ; -2 EXSTACK size for 1 task
@ -563,14 +570,17 @@ LEAVE: LD A,B
LD A,H LD A,H
OUT (SLOT3),A OUT (SLOT3),A
; ;
LD A,E ; INT ON/OFF
POP DE ; -2 POP DE ; -2
POP HL ; -2 POP HL ; -2
LD (EXSTACK),SP LD (EXSTACK),SP
LD SP,HL LD SP,HL
; ;
;!TEST ;!TEST
;EI AND %0000'0100 ; PO/PE flag
; JR Z,.no_ei
EI
.no_ei: ;
EX DE,HL EX DE,HL
LD A,(ErrorLevel) LD A,(ErrorLevel)
;R12 ;R12

View File

@ -245,11 +245,17 @@ GET_LABEL: PUSH DE
LD A,FAT_ATTR.VOLUME_ID ;  âਡãâ ¬¥âª¨ ⮬  LD A,FAT_ATTR.VOLUME_ID ;  âਡãâ ¬¥âª¨ ⮬ 
LD B,high Dss.F_First.FATname LD B,high Dss.F_First.FATname
CALL F_FIRST CALL F_FIRST
;LD BC,Dss.F_First.FATname ; f_first, ä®à¬ â 11
;RST ToDSS
POP DE POP DE
LD HL,CORE_BUFFERS.FatBuffer.BPB_LABEL LD HL,CORE_BUFFERS.FatBuffer.BPB_LABEL
RET C RET C
; [ ] 07/03/2025 ª®áâë«ì ¤«ï  âਡãâ  0. <20> áâ®ï« ‘ ¢¥«¨©))
LD HL,BUFFER_FIND.REC_Attr
ADD HL,DE
LD A,(HL)
OR A
SCF
RET Z
;
LD HL,BUFFER_FIND.REC_Name LD HL,BUFFER_FIND.REC_Name
ADD HL,DE ADD HL,DE
RET RET

View File

@ -130,99 +130,99 @@ DELETE_LFN_RECORDS:
; (HANDBUF) = file's direcory record ; (HANDBUF) = file's direcory record
; CF - ª â «®£ ­¥ ­ ©¤¥­ ; CF - ª â «®£ ­¥ ­ ©¤¥­
SEARCH: SEARCH:
.Dir: ;LD A,FAT_ATTR.DIRECTORY .Dir: ;LD A,FAT_ATTR.DIRECTORY
LD A,FAT_ATTR.HiddenSysDir LD A,FAT_ATTR.HiddenSysDir
CALL .Custom CALL .Custom
RET NC RET NC
CP DSS_Error.sys.PATH_NOT_FOUND + 1 CP DSS_Error.sys.PATH_NOT_FOUND + 1
RET C RET C
; ;
SCF SCF
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
RET RET
; ;
.File: LD A,FAT_ATTR.NoDIRnoVolID .File: LD A,FAT_ATTR.NoDIRnoVolID
.Custom: EX AF,AF' ; A = 76ADLSHR .Custom: EX AF,AF' ; A = 76ADLSHR
SET_PAGE_X DIRPAGE SET_PAGE_X DIRPAGE
;PUSH AF ;PUSH AF
EX AF,AF' EX AF,AF'
; ;
CPL CPL
LD C,A LD C,A
LD IX,DIRPAGE.buffer LD IX,DIRPAGE.buffer
;!TEST 9/11/23 record index ;!TEST 9/11/23 record index
; ®¯â¨¬¨§ æ¨ï ¤«ï ¨­¤¥ªá  § ¯¨á¨ ¢ ᯨ᪥ ª â «®£ . ; ®¯â¨¬¨§ æ¨ï ¤«ï ¨­¤¥ªá  § ¯¨á¨ ¢ ᯨ᪥ ª â «®£ .
; <09>®­ ¤®¡¨âáï ¢¥à­ãâì ¤«ï ¯¥à¥¡®à  ª â «®£  > #4000 ¡ ©â ; <09>®­ ¤®¡¨âáï ¢¥à­ãâì ¤«ï ¯¥à¥¡®à  ª â «®£  > #4000 ¡ ©â
; EXX ; EXX
; LD DE,0 ; LD DE,0
; EXX ; EXX
; ;
.loop: LD A,(IX+FAT_DIRECTORY_RECORD.NAME) .loop: LD A,(IX+FAT_DIRECTORY_RECORD.NAME)
OR A OR A
JR Z,.error_file_not_found JR Z,.error_file_not_found
CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤­ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥­ë CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤­ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥­ë
JR Z,.next_record JR Z,.next_record
LD A,(IX+FAT_DIRECTORY_RECORD.ATTRIBUT) LD A,(IX+FAT_DIRECTORY_RECORD.ATTRIBUT)
AND C AND C
JR NZ,.next_record JR NZ,.next_record
LD HL,MASKARE ;
LD D,XH .not_zero_attr: LD HL,MASKARE
LD E,XL LD D,XH
LD B,11 LD E,XL
EX DE,HL LD B,11
.loop_compare: EX DE,HL
LD A,(DE) .loop_compare: LD A,(DE)
CP '?' CP '?'
JR Z,.next_char JR Z,.next_char
CP (HL) CP (HL)
JR NZ,.next_record JR NZ,.next_record
.next_char: ;
INC HL .next_char: INC HL
INC DE INC DE
DJNZ .loop_compare DJNZ .loop_compare
; ;
LD D,XH LD D,XH
LD E,XL LD E,XL
;!TEST 9/11/23 record index ;!TEST 9/11/23 record index
; EXX ; EXX
; PUSH DE ; PUSH DE
; EXX ; EXX
PUSH IX PUSH IX
; ;
LD HL,HANDBUF LD HL,HANDBUF
EX DE,HL EX DE,HL
LD BC,HANDBUF.SIZE LD BC,HANDBUF.SIZE
LDIR LDIR
;!TEST 9/11/23 record index ;!TEST 9/11/23 record index
POP DE POP DE
; ;
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
EX AF,AF' EX AF,AF'
AND A AND A
RET RET
.next_record: ;
LD DE,FAT_DIRECTORY_RECORD .next_record: LD DE,FAT_DIRECTORY_RECORD
;!TEST 9/11/23 record index ;!TEST 9/11/23 record index
; EXX ; EXX
; INC DE ; INC DE
; EXX ; EXX
; ;
ADD IX,DE ADD IX,DE
JR NC,.loop JR NC,.loop
.error_too_many_files: .error_too_many_files:
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
SCF SCF
RET RET
; ;
.error_file_not_found: .error_file_not_found:
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
LD A,DSS_Error.sys.FILE_NOT_FOUND LD A,DSS_Error.sys.FILE_NOT_FOUND
SCF SCF
RET RET
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
; ;

View File

@ -1 +1 @@
24 26

@ -1 +1 @@
Subproject commit 60b5ff6a74b57614b1f54fbe5611585cd46582ab Subproject commit d22e7b9aae7efe3d24bdf767e057abc51e37ea2d