mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
DiskINF: костыль для атрибута 0. Настоял Савелий))
This commit is contained in:
parent
c19ce52143
commit
78c229e75a
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
182
DSS/FS/FAT.asm
182
DSS/FS/FAT.asm
@ -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
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
24
|
26
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 60b5ff6a74b57614b1f54fbe5611585cd46582ab
|
Subproject commit d22e7b9aae7efe3d24bdf767e057abc51e37ea2d
|
||||||
Loading…
Reference in New Issue
Block a user