mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
87 lines
1.6 KiB
NASM
87 lines
1.6 KiB
NASM
; [x] fat32 ;!TEST
|
|
////////////////////////////////////////////////////////////////////////
|
|
;‚å®¤ë¥ § 票ï:
|
|
; C - #12
|
|
; A - ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
|
;‚ëå®¤ë¥ § 票ï:
|
|
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
|
////////////////////////////////////////////////////////////////////////
|
|
CLOSE_FN:
|
|
;R008 ;
|
|
;CLOSE: ;
|
|
LD (.TMP),A
|
|
CALL SET_FM
|
|
RET C
|
|
LD A,(TASK)
|
|
CP (IY+_sFM.TASK_NUM)
|
|
LD A,DSS_Error.sys.ACCESS_DENIED
|
|
SCF
|
|
RET NZ
|
|
BIT 7,(IY+_sFM.ACCESS_MODE)
|
|
JR Z,.NOTMODF
|
|
LD E,(IY+_sFM.DIR_CLUSTER_L)
|
|
LD D,(IY+_sFM.DIR_CLUSTER_L+1)
|
|
PUSH DE
|
|
; [x] fat32
|
|
LD E,(IY+_sFM.DIR_CLUSTER_H)
|
|
LD D,(IY+_sFM.DIR_CLUSTER_H+1)
|
|
PUSH DE
|
|
;
|
|
; [x] 15/11/2023 -bug with bad clusters ;!TEST
|
|
LD A,(IY+_sFM.DRIVE)
|
|
CALL OPENDSK
|
|
;
|
|
XOR A
|
|
CALL SET_FM
|
|
; [x] fat32
|
|
POP DE
|
|
LD (IY+_sFM.DIR_CLUSTER_H),E
|
|
LD (IY+_sFM.DIR_CLUSTER_H+1),D
|
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_H),E
|
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_H+1),D
|
|
;
|
|
POP DE
|
|
LD (IY+_sFM.DIR_CLUSTER_L),E
|
|
LD (IY+_sFM.DIR_CLUSTER_L+1),D
|
|
; [x] 15/11/2023 -bug with bad clusters ;!TEST
|
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_L),E
|
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1),D
|
|
;
|
|
CALL LOADDIR
|
|
.TMP+1: LD A,0
|
|
CALL SET_FM
|
|
;
|
|
SET_PAGE_X DIRPAGE
|
|
;
|
|
;!TEST 9/11/23 record index
|
|
; LD HL,DIR
|
|
; LD DE,FAT_DIRECTORY_RECORD
|
|
; LD C,(IY+_sFM.HANDLE)
|
|
; LD B,(IY+_sFM.HANDLE+1)
|
|
; JR .CLOSE2
|
|
; .CLOSE1:
|
|
; ADD HL,DE
|
|
; DEC BC
|
|
; .CLOSE2:
|
|
; LD A,B
|
|
; OR C
|
|
; JR NZ,.CLOSE1
|
|
LD L,(IY+_sFM.HANDLE)
|
|
LD H,(IY+_sFM.HANDLE+1)
|
|
;
|
|
LD D,YH
|
|
LD E,YL
|
|
EX DE,HL
|
|
;PUSH HL
|
|
;SET_PAGE_X DIRPAGE
|
|
;POP HL
|
|
LD BC,FAT_DIRECTORY_RECORD
|
|
LDIR
|
|
OUT (SLOT3),A
|
|
CALL SAVEDIR
|
|
.NOTMODF:
|
|
LD A,(.TMP)
|
|
;CALL RES_FM
|
|
JP RES_FM
|
|
;RET
|
|
; |