This commit is contained in:
Anatoliy Belyanskiy 2023-11-15 04:04:38 +10:00
parent 34ee5a9db8
commit 6333672fa6
2 changed files with 68 additions and 52 deletions

View File

@ -7,7 +7,7 @@
;Rev Date Name Description
;-------------------------------------------------------------
;R11 17-04-2023 BAO ‚६¥­­ë© ª®áâë«ì ¤«ï ­¥¤®¯ã᪠­¨ï ¯¥à¥¯®«­¥­¨ï ¡ãä¥à  ¯ã⨠ª â «®£ 
;R10 15-04-2023 BAO ;????? FIXED BUG WITH CHANGE DISK WITHOUT CHANGE PATH ;!FIXIT ¯®ª  ¢ ¢¨¤¥ § ¯« âª¨ ¯®«ã­¥à ¡®â î饩
;R10 15-04-2023 BAO FIXED BUG WITH CHANGE DISK WITHOUT CHANGE PATH
;R09 13-04-2023 BAO FIX BUG WITH PARSING DIRECTORY BUFFER
;R08 15-04-2003 DNS SAVE AND RESTORE CUR-PATH MACROS
;R07 06-02-2003 DNS FIX BUG IN MASK ROUTINE, IT ALLOW NAMES WHICH BEGAN
@ -181,12 +181,12 @@ CREAT_N EQU CREATE.NEW
; INPUT: HL - "c:\dir\filename.ext",#00 without simbols * ?
////////////////////////////////////////////////////////////////////////
DEL_FN: ;!TEST
;!TEST Current Dir ;[x] 15/10/23
PUSH HL
CALL DIR_PATH_CHECK
POP HL
RET C
;
;!TEST Current Dir ;[x] 15/10/23
PUSH HL
CALL DIR_PATH_CHECK
POP HL
RET C
;
CALL GETWORD ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
RET C
; LD HL,TMPNAME
@ -316,7 +316,7 @@ OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
POP HL
RET C
LD A,C
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
;
;R08
OPEN: LD (.TMP),A ; enter point for CREATE
@ -580,24 +580,18 @@ CHNDISK_FN:
CALL DIR_PATH_CHANGE.FullCurrent
POP AF
RET
CHNDISK:
;!TEST
CHNDISK:;[x] ¡®«¥¥ ª®à४⭠ï ᬥ­  ¤¨áª 
CALL OPENDSK
;CALL OPENDSK.force
;
;????? R10
RET C
;R10
RET C
LD HL,WorkDirectory
LD (HL),0
PUSH AF
CALL OPENDIR
POP BC
RET C
LD A,B
; RET C
; PUSH AF
; CALL LOADDIR
; POP AF
LD (HL),0
PUSH AF
CALL OPENDIR
POP BC
RET C
LD A,B
RET
////////////////////////////////////////////////////////////////////////
@ -605,19 +599,24 @@ CHNDISK:
;
; ¢å®¤: HL - ¡ãä¥à ¢ ¯ ¬ï⨠256 ¡ ©â
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
; !FIXIT ¬®¦¥â ¢ë©â¨ §  ¯à¥¤¥«ë ¡ãä¥à ?
////////////////////////////////////////////////////////////////////////
CURRDIR: LD DE,WorkDirectory
JR CURRDIR_FN.skip
CURRDIR_FN:
LD DE,CurrentDirectory
.skip: EX DE,HL
LD BC,DIRECTORY_PATH_LENGTH ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ §  ¯à¥¤¥«ë ¡ãä¥à 
XOR A
.loop: CP (HL)
LDI
LDI
JP PO,.error ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ §  ¯à¥¤¥«ë ¡ãä¥à 
JR NZ,.loop
RET
;[x] 15/11/2023 ¬®£«® ¢ë©â¨ §  ¯à¥¤¥«ë ¡ãä¥à 
.error: LD A,DSS_Error.sys.TOO_DEEP_DIR_DEPTH
SCF
RET
;
////////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #21. ’¥ªãé ï ¤ â  ¨ ¢à¥¬ï.
;
@ -1023,8 +1022,8 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
LD E,L
INC DE
LD (HL),0
LD BC,512-65
LDIR ;!FIXIT ­ã¦­® «¨ â ª ¬­®£® £à®å âì?
LD BC,512-65 ;!HARDCODE
LDIR
;
POP HL
CALL NSECTOR
@ -1049,7 +1048,7 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
LD DE,CORE_BUFFERS.SECBUF+1
LD BC,511
LD (HL),0
LDIR ;!FIXIT ­ã¦­® «¨ â ª ¬­®£® £à®å âì?
LDIR
;
POP IX
POP HL
@ -1453,7 +1452,7 @@ SEARCH:
INC HL
INC DE
DJNZ .loop_compare
;!TEST 9/11/23
;!TEST 9/11/23 ;[x] some optimize
; LD D,XH
; LD E,XL
LD D,XH
@ -1472,7 +1471,7 @@ SEARCH:
AND A
RET
.next_record:
;!TEST 9/11/23
;!TEST 9/11/23 ;[x] some optimize
; EXX
; INC DE
; EXX
@ -1580,9 +1579,9 @@ TMPNAME: DZ ' ' ; 12
;----------------------------------------------------------------------;
; IN: A - drive number
;
;????? R10
OPENDSK:
;!TEST DRV.Open ®¡å®¤
;!TEST DRV.Open ®¡å®¤ R10
LD C,A
LD A,(FatBuffer.DRIVE)
CP C
@ -1610,19 +1609,25 @@ OPENDSK:
;----------------------------------------------------------------------;
OPENDIR:
XOR A
CALL SET_FM
OPENDIR:;!TEST ;[ ] some optimize
;XOR A
;CALL SET_FM
LD IY,CORE_BUFFERS.FM_BUF
;
LD A,(HL)
OR A
JR NZ,.SUBDIR
.REROOT1:
LD DE,0
LD (IY+_sFM.ST_CLUSTER),E
LD (IY+_sFM.ST_CLUSTER+1),D
;!TEST ;[ ] some optimize
;LD (IY+_sFM.ST_CLUSTER),E
;LD (IY+_sFM.ST_CLUSTER+1),D
EX DE,HL
LD (CORE_BUFFERS.FM_BUF + _sFM.ST_CLUSTER),HL
EX DE,HL
;
CALL LOADDIR
;LD HL,CurrentDirectory
.dir+1: LD HL,WorkDirectory
LD HL,WorkDirectory
LD (HL),'\'
INC HL
LD (HL),#00
@ -1631,8 +1636,11 @@ OPENDIR:
.SUBDIR:
CP "."
JR NZ,.SUBDIR2
LD A,(IY+_sFM.ST_CLUSTER) ;R05 ;!FIXIT ¬®¦­® ¯¥à¥¤¥« âì ­  ¯àï¬ë¥ áá뫪¨ ¡¥§ IY
OR (IY+_sFM.ST_CLUSTER+1) ;R05 ;!FIXIT ¬®¦­® ¯¥à¥¤¥« âì ­  ¯àï¬ë¥ áá뫪¨ ¡¥§ IY
;!TEST ;[ ] some optimize
;LD A,(IY+_sFM.ST_CLUSTER) ;R05
LD A,(CORE_BUFFERS.FM_BUF + _sFM.ST_CLUSTER) ;R05
;
OR (IY+_sFM.ST_CLUSTER+1) ;R05
JR NZ,.SUDI1 ;R05
INC HL ;R05
LD A,(HL) ;R05
@ -1640,7 +1648,7 @@ OPENDIR:
DEC HL ;R05
JR Z,.REROOT1 ;R05
.SUDI1: EXX
LD HL,MASKARE ;!FIXIT ¬®¦­® ­¥ § â¨à âì ¯à¥¤¢ à¨â¥«ì­®?
LD HL,MASKARE
LD DE,MASKARE+1
LD BC,10 ;!HARDCODE
LD (HL),' '
@ -1653,17 +1661,23 @@ OPENDIR:
JR NZ,.loop
JR .SUBDIR3
.SUBDIR2:
;LD DE,MASKARE
CALL MASK.name
RET C
.SUBDIR3:
CALL FINDDIR
RET C
LD (IY+_sFM.ST_CLUSTER),E
LD (IY+_sFM.ST_CLUSTER+1),D
LD DE,#4000 ;!HARDCODE
LD (IY+_sFM.F_SIZE),E
LD (IY+_sFM.F_SIZE+1),D
;!TEST ;[ ] some optimize
;LD (IY+_sFM.ST_CLUSTER),E
;LD (IY+_sFM.ST_CLUSTER+1),D
;LD DE,#4000 ;!HARDCODE
;LD (IY+_sFM.F_SIZE),E
;LD (IY+_sFM.F_SIZE+1),D
EX DE,HL
LD (CORE_BUFFERS.FM_BUF + _sFM.ST_CLUSTER),HL
LD HL,#4000 ;!HARDCODE
LD (CORE_BUFFERS.FM_BUF + _sFM.F_SIZE),HL
EX DE,HL
;
CALL LOADDIR
AND A
RET
@ -1738,8 +1752,6 @@ FINDDIR:
.ADDSPEC:
LD E,XL
LD D,XH
;LD HL,CurrentDirectory+1
;LD BC,CurrentDirectory.DEPTH-1
LD HL,WorkDirectory+1
LD BC,WorkDirectory.DEPTH-1
; XOR A
@ -1975,6 +1987,7 @@ LOADDIR:
; LD (HL),L
; LDIR
;
;
LD A,(FatBuffer.DRIVE) ; ­®¬¥à ¤¨áª 
LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
LD D,(IY+_sFM.ST_CLUSTER) ; de=­®¬¥à ¯¥à¢®£® ª« áâ¥à 
@ -2204,7 +2217,10 @@ DIR_PATH_CHECK: LD A,(HL)
; Œ áᨢ «®£. ­®¬¥à®¢ ¡ ­®ª à áè¨à¥­¨ï DSS
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
;
HANDBUF: BLOCK HANDBUF.SIZE,0
;
MASKARE: BLOCK 8,0 ; ¨¬ï ä ©« 
BLOCK 3,0 ; à áè.
BLOCK 21,0 ; 11+21=32

View File

@ -1 +1 @@
579
595