Estex-DSS/DSS/API/Open.asm
2024-01-09 00:06:14 +10:00

69 lines
1.4 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 § ¯¨áì
; ¢ë室: 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 ;
;OPEN: ;
;LD (.TMP),A ; enter point from CREATE
.start: CALL GETWORD
RET C
CALL MASK ; enter point from OPEN_FN
RET C
.FILE: CALL SEARCH.File ; enter point from EXEC
RET C
;R002 ;
.FM: CALL GET_FM ; enter point from ATTRIB
RET C
LD A,C
EX AF,AF'
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.KnownCluster_L),A
LD (IY+_sFM.KnownCluster_H),A
LD (IY+_sFM.KnownOffset_L),A
LD (IY+_sFM.KnownOffset_H),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
LD HL,CORE_BUFFERS.FM_BUF+_sFM.ST_CLUSTER
LD E,(HL)
INC HL
LD D,(HL)
LD (IY+_sFM.DIR_CLUSTER),E
LD (IY+_sFM.DIR_CLUSTER+1),D
EX AF,AF'
AND A
RET
;