Estex-DSS/DSS/API/Open.asm
Anatoliy Belyanskiy 0312779217 Preparing for FAT32
2024-03-12 03:51:04 +10:00

76 lines
1.7 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

////////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #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
LD (.TMP),A
PUSH HL
CALL DIR_PATH_CHECK.forceCheck
POP HL
RET C
;JR .start
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
;R008 ;
.start: CALL GETWORD
RET C
CALL MASK
RET C
.FILE: CALL SEARCH.File ; enter point from EXEC, CREATE
RET C
;!TEST 㪠§ â¥«ì ­  § ¯¨áì ¢ ª â «®£¥ FS
PUSH DE ; á®å࠭塞 㪠§ â¥«ì ­  § ¯¨áì ¢ ª â «®£¥ FS (¯®«ã祭 ¨§ SEARCH)
;R002 ;
.FM: CALL GET_FM ; enter point from ATTRIB
RET C
LD A,C
EX AF,AF'
;!TEST 㪠§ â¥«ì ­  § ¯¨áì ¢ ª â «®£¥ 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
; [ ] fat32
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
;
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,(FatBuffer.DRIVE)
LD (IY+_sFM.DRIVE),A
; [ ] fat32
LD HL,CORE_BUFFERS.FM_BUF+_sFM.FS_REC.FIRST_CLUSTER_L
LD E,(HL)
INC HL
LD D,(HL)
; [ ] fat32
LD (IY+_sFM.DIR_CLUSTER),E
LD (IY+_sFM.DIR_CLUSTER+1),D
EX AF,AF'
AND A
RET
;