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

View File

@ -1 +1 @@
579 595