mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
89 lines
2.2 KiB
NASM
89 lines
2.2 KiB
NASM
; [x] fat32 ;!TEST
|
||
////////////////////////////////////////////////////////////////////////
|
||
; ”ãªæ¨ï #11. Žâªàë⨥ ä ©« .
|
||
;
|
||
; ¢å®¤: HL - 㪠§ â¥«ì ¨¬ï ä ©«
|
||
; A - ०¨¬ ¤®áâ㯠:
|
||
; A=0 ç⥨¥/§ ¯¨áì
|
||
; A=1 ç⥨¥
|
||
; A=2 § ¯¨áì
|
||
; ;!TODO A=3 § ¯¨áì ¡¥§ «¨è¨å á®åà ¥¨© ªíè FAT
|
||
; ;!TODO A=4 § ¯¨á âì ªíè FAT
|
||
; ¢ë室: CF=0, A - ¤¥áªà¨¯â®à ä ©« .
|
||
; CF=1, A - ª®¤ ®è¨¡ª¨.
|
||
////////////////////////////////////////////////////////////////////////
|
||
OPEN_FN: ;!TEST Current Dir ;[x] 15/10/23
|
||
;AND #7F ; ACCESS_MODE bit7 - ¤«ï ¢ãâ॥£® ¨á¯®«ì§®¢ ¨ï))) ;!TODO
|
||
LD (.TMP),A
|
||
PUSH HL
|
||
CALL DIR_PATH_CHECK.forceCheck
|
||
POP HL
|
||
RET C
|
||
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
|
||
;R008 ;
|
||
.start: CALL SetPath_GetName
|
||
RET C
|
||
CALL MASK
|
||
RET C
|
||
.FILE: CALL SEARCH.File ; enter point from EXEC, CREATE
|
||
RET C
|
||
;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'
|
||
;!TEST 9/11/23 record index 㪠§ â¥«ì § ¯¨áì ¢ ª â «®£¥ FS
|
||
POP DE
|
||
; EXX
|
||
LD (IY+_sFM.HANDLE),E
|
||
LD (IY+_sFM.HANDLE+1),D
|
||
; EXX
|
||
;
|
||
LD D,YH
|
||
LD E,YL
|
||
LD HL,HANDBUF
|
||
LD BC,HANDBUF.SIZE
|
||
LDIR
|
||
.TMP+1: LD A,0
|
||
LD (IY+_sFM.ACCESS_MODE),A
|
||
LD A,(TASK)
|
||
LD (IY+_sFM.TASK_NUM),A
|
||
XOR A
|
||
LD (IY+_sFM.OptimizedClusters),A
|
||
LD (IY+_sFM.KnownCluster_L),A
|
||
LD (IY+_sFM.KnownCluster_L+1),A
|
||
LD (IY+_sFM.KnownOffset_L),A
|
||
LD (IY+_sFM.KnownOffset_L+1),A
|
||
; fat32
|
||
LD (IY+_sFM.KnownCluster_H),A
|
||
LD (IY+_sFM.KnownCluster_H+1),A
|
||
LD (IY+_sFM.KnownOffset_H),A
|
||
LD (IY+_sFM.KnownOffset_H+1),A
|
||
;
|
||
LD (IY+_sFM.F_POSITION),A
|
||
LD (IY+_sFM.F_POSITION+1),A
|
||
LD (IY+_sFM.F_POSITION+2),A
|
||
LD (IY+_sFM.F_POSITION+3),A
|
||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||
LD (IY+_sFM.DRIVE),A
|
||
; fat32
|
||
LD HL,CORE_BUFFERS.FM_BUF+_sFM.FS_REC.FIRST_CLUSTER_H
|
||
LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
LD (IY+_sFM.DIR_CLUSTER_H),E
|
||
LD (IY+_sFM.DIR_CLUSTER_H+1),D
|
||
;
|
||
LD HL,CORE_BUFFERS.FM_BUF+_sFM.FS_REC.FIRST_CLUSTER_L ; work directory FM
|
||
LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
LD (IY+_sFM.DIR_CLUSTER_L),E
|
||
LD (IY+_sFM.DIR_CLUSTER_L+1),D
|
||
;
|
||
EX AF,AF'
|
||
AND A
|
||
RET
|
||
; |