mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
write protected partition with 64 kb cluster
This commit is contained in:
parent
4cebd03a1a
commit
3480195912
@ -76,6 +76,10 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
|
; [ ] 26/06/2024
|
||||||
|
CALL CHECK_64kb_CLUSTER
|
||||||
|
RET C
|
||||||
|
;
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
LD A,FAT_ATTR.NoVolID
|
LD A,FAT_ATTR.NoVolID
|
||||||
|
|||||||
@ -108,8 +108,10 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23 ;CREATE_FN:
|
|||||||
LD (.PATH0),HL
|
LD (.PATH0),HL
|
||||||
CALL GETWORD
|
CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
; LD HL,TMPNAME
|
; [ ] 26/06/2024
|
||||||
; LD DE,MASKARE
|
CALL CHECK_64kb_CLUSTER
|
||||||
|
RET C
|
||||||
|
;
|
||||||
JP MASK
|
JP MASK
|
||||||
;
|
;
|
||||||
; [x] fixed a bug with incorrect search when there were too many files in the directory 12/03/2024
|
; [x] fixed a bug with incorrect search when there were too many files in the directory 12/03/2024
|
||||||
|
|||||||
@ -19,6 +19,10 @@ DEL_FN: ;!TEST
|
|||||||
;
|
;
|
||||||
.old_EXE: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
.old_EXE: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
|
; [ ] 26/06/2024
|
||||||
|
CALL CHECK_64kb_CLUSTER
|
||||||
|
RET C
|
||||||
|
;
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
;
|
;
|
||||||
|
|||||||
@ -34,9 +34,11 @@ MKDIR:
|
|||||||
;
|
;
|
||||||
.START: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
.START: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
;LD HL,TMPNAME ; 8.3 ¨¬ï
|
; [ ] 26/06/2024
|
||||||
;LD DE,MASKARE ; ¡ãä¥à ¨¬¥¨ 11 ᨬ¢. ä®à¬ â
|
CALL CHECK_64kb_CLUSTER
|
||||||
CALL MASK ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
|
RET C
|
||||||
|
;
|
||||||
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
;!TEST optimization à ¥¥ GETWORD 㦥 § £à㧨« ¤¨à¥ªâ®à¨î
|
;!TEST optimization à ¥¥ GETWORD 㦥 § £à㧨« ¤¨à¥ªâ®à¨î
|
||||||
;CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
;CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||||
|
|||||||
@ -9,77 +9,82 @@
|
|||||||
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
||||||
; DE - "new_name.ext",#00 without simbols * ?
|
; DE - "new_name.ext",#00 without simbols * ?
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
||||||
; [ ] 10/06/24
|
; [ ] 10/06/24
|
||||||
IF OLD_DSS_FOR_OLD_EXE
|
IF OLD_DSS_FOR_OLD_EXE
|
||||||
LD A,(EXE_VERSION)
|
LD A,(EXE_VERSION)
|
||||||
OR A
|
OR A
|
||||||
JR Z,.old_EXE
|
JR Z,.old_EXE
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH DE
|
PUSH DE
|
||||||
CALL DIR_PATH_CHECK.forceCheck
|
CALL DIR_PATH_CHECK.forceCheck
|
||||||
POP DE
|
POP DE
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
;
|
;
|
||||||
.old_EXE:
|
.old_EXE: ;
|
||||||
PUSH DE
|
; !TODO ¢®âªãâì âãâ GETWORD, ç⮡ ¬®¦® ¡ë«® 㤠«ïâì ¯® ®â®á¨â¥«ìë¬ ¯ãâï¬?
|
||||||
;LD DE,MASKARE
|
;
|
||||||
CALL MASK.name
|
; [ ] 26/06/2024
|
||||||
POP DE
|
CALL CHECK_64kb_CLUSTER
|
||||||
RET C
|
RET C
|
||||||
;!TEST optimization
|
;
|
||||||
;LD HL,MASKARE
|
PUSH DE
|
||||||
;LD BC,11
|
CALL MASK.name
|
||||||
;LD A,"?"
|
POP DE
|
||||||
;CPIR
|
RET C
|
||||||
;LD A,DSS_Error.sys.INVALID_NAME
|
;!TEST optimization
|
||||||
;SCF
|
;LD HL,MASKARE
|
||||||
CALL CHECK_NAME
|
;LD BC,11
|
||||||
;
|
;LD A,"?"
|
||||||
RET Z
|
;CPIR
|
||||||
PUSH DE
|
;LD A,DSS_Error.sys.INVALID_NAME
|
||||||
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
;SCF
|
||||||
;LD A,#33
|
CALL CHECK_NAME
|
||||||
LD A,FAT_ATTR.NoSYSnoVolID
|
;
|
||||||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
RET Z
|
||||||
POP HL
|
PUSH DE
|
||||||
RET C
|
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||||
;LD DE,MASKARE
|
;LD A,#33
|
||||||
CALL MASK.name
|
LD A,FAT_ATTR.NoSYSnoVolID
|
||||||
RET C
|
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||||
;!TEST optimization
|
POP HL
|
||||||
;LD HL,MASKARE
|
RET C
|
||||||
;LD BC,11
|
;LD DE,MASKARE
|
||||||
;LD A,"?"
|
CALL MASK.name
|
||||||
;CPIR
|
RET C
|
||||||
;LD A,DSS_Error.sys.INVALID_NAME
|
;!TEST optimization
|
||||||
;SCF
|
;LD HL,MASKARE
|
||||||
CALL CHECK_NAME
|
;LD BC,11
|
||||||
;
|
;LD A,"?"
|
||||||
RET Z
|
;CPIR
|
||||||
PUSH IX
|
;LD A,DSS_Error.sys.INVALID_NAME
|
||||||
LD A,FAT_ATTR.NoSYSnoVolID
|
;SCF
|
||||||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
CALL CHECK_NAME
|
||||||
POP IX
|
;
|
||||||
LD A,DSS_Error.sys.FILE_EXISTS
|
RET Z
|
||||||
CCF
|
PUSH IX
|
||||||
RET C
|
LD A,FAT_ATTR.NoSYSnoVolID
|
||||||
|
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||||
|
POP IX
|
||||||
|
LD A,DSS_Error.sys.FILE_EXISTS
|
||||||
|
CCF
|
||||||
|
RET C
|
||||||
|
|
||||||
SET_PAGE_X DIRPAGE
|
SET_PAGE_X DIRPAGE
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
LD BC,11
|
LD BC,11
|
||||||
LDIR
|
LDIR
|
||||||
;
|
;
|
||||||
CALL DELETE_LFN_RECORDS ; [ ] 㤠«¥¨¥ § ¯¨á¨ LFN
|
CALL DELETE_LFN_RECORDS ; [ ] 㤠«¥¨¥ § ¯¨á¨ LFN
|
||||||
;
|
;
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
JP SAVEDIR
|
JP SAVEDIR
|
||||||
;
|
; ; ;
|
||||||
@ -30,6 +30,10 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
.START: CALL GETWORD
|
.START: CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
|
; [ ] 26/06/2024
|
||||||
|
CALL CHECK_64kb_CLUSTER
|
||||||
|
RET C
|
||||||
|
;
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
;!TEST optimization
|
;!TEST optimization
|
||||||
|
|||||||
@ -10,22 +10,23 @@
|
|||||||
; B - ᥪã¤ë
|
; B - ᥪã¤ë
|
||||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
PUT_D_T:
|
|
||||||
PUSH AF
|
;!FIXIT ¤®? CHECK_64kb_CLUSTER
|
||||||
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
PUT_D_T: PUSH AF
|
||||||
POP AF ; ¤¥áªà¨¯â®à
|
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||||
PUSH DE
|
POP AF ; ¤¥áªà¨¯â®à
|
||||||
PUSH BC
|
PUSH DE
|
||||||
CALL SET_FM
|
PUSH BC
|
||||||
POP BC
|
CALL SET_FM
|
||||||
POP DE
|
POP BC
|
||||||
RET C
|
POP DE
|
||||||
; [ ] VFAT
|
RET C
|
||||||
LD (IY + _sFM.FS_REC.TIME),E
|
; [ ] VFAT
|
||||||
LD (IY + _sFM.FS_REC.TIME+1),D
|
LD (IY + _sFM.FS_REC.TIME),E
|
||||||
LD (IY + _sFM.FS_REC.DATE),C
|
LD (IY + _sFM.FS_REC.TIME+1),D
|
||||||
LD (IY + _sFM.FS_REC.DATE+1),B
|
LD (IY + _sFM.FS_REC.DATE),C
|
||||||
SET 7,(IY + _sFM.ACCESS_MODE) ;R006 ; ãáâ. ¯à¨§ ª ¨§¬¥¥¨ï ä ©«
|
LD (IY + _sFM.FS_REC.DATE+1),B
|
||||||
AND A
|
SET 7,(IY + _sFM.ACCESS_MODE) ;R006 ; ãáâ. ¯à¨§ ª ¨§¬¥¥¨ï ä ©«
|
||||||
RET
|
AND A
|
||||||
|
RET
|
||||||
;
|
;
|
||||||
@ -37,6 +37,10 @@ WRITE: ;!TEST ;!TODO 5/12/23 ; [ ]
|
|||||||
LD A,(IY + _sFM.DRIVE)
|
LD A,(IY + _sFM.DRIVE)
|
||||||
CALL OPENDSK
|
CALL OPENDSK
|
||||||
JR C,.ERR1
|
JR C,.ERR1
|
||||||
|
; [ ] 26/06/2024
|
||||||
|
CALL CHECK_64kb_CLUSTER
|
||||||
|
RET C
|
||||||
|
;
|
||||||
CALL GET_OFFSET_IN_SECTORS
|
CALL GET_OFFSET_IN_SECTORS
|
||||||
;
|
;
|
||||||
JP NZ,.WOV1
|
JP NZ,.WOV1
|
||||||
|
|||||||
@ -166,9 +166,10 @@ RST_38_IM1: JP .Handler
|
|||||||
POP AF
|
POP AF
|
||||||
JR .Portal
|
JR .Portal
|
||||||
;
|
;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
;NMI: RETN
|
;NMI: RETN
|
||||||
;
|
;
|
||||||
@ -180,6 +181,7 @@ RST_38_IM1: JP .Handler
|
|||||||
NMI_0x66: RETN ;JP NMI ;
|
NMI_0x66: RETN ;JP NMI ;
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||||
;
|
;
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
;
|
;
|
||||||
RST_10: PUSH HL
|
RST_10: PUSH HL
|
||||||
@ -404,6 +406,19 @@ ADRST10: ;DS 512 ;,0
|
|||||||
INCLUDE "Procedures.asm"
|
INCLUDE "Procedures.asm"
|
||||||
INCLUDE "Kernel_Panic.asm"
|
INCLUDE "Kernel_Panic.asm"
|
||||||
|
|
||||||
|
|
||||||
|
; [ ] 26/06/2024& read only 64kb cluster ; !TODO cluster 64kb
|
||||||
|
CHECK_64kb_CLUSTER:
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.BytesPerCluster)
|
||||||
|
; CF=0
|
||||||
|
ADC HL,HL
|
||||||
|
LD A,DSS_Error.sys.WRITE_PROTECT
|
||||||
|
RET NZ
|
||||||
|
CCF
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
;!FIXIT ª ¡ãä¥à ¬
|
;!FIXIT ª ¡ãä¥à ¬
|
||||||
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï DSS
|
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï DSS
|
||||||
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
||||||
|
|||||||
@ -579,7 +579,8 @@ LOAD_SAVE_DIR_PREPARE:
|
|||||||
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ ) de ix iy
|
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ ) de ix iy
|
||||||
; ¨ á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
; ¨ á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||||
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£
|
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£
|
||||||
WRT_HND: SET_PAGE_X DIRPAGE
|
WRT_HND:
|
||||||
|
SET_PAGE_X DIRPAGE
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD HL,DIRPAGE.buffer
|
LD HL,DIRPAGE.buffer
|
||||||
;!TEST 9/11/23 record index
|
;!TEST 9/11/23 record index
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
993
|
994
|
||||||
@ -45,7 +45,7 @@ MAIN_MSG:
|
|||||||
stN .ECHO_ : DZ "Echo is %1\r\n"
|
stN .ECHO_ : DZ "Echo is %1\r\n"
|
||||||
stN .ON_ : DZ "on"
|
stN .ON_ : DZ "on"
|
||||||
stN .OFF_ : DZ "off"
|
stN .OFF_ : DZ "off"
|
||||||
stN .DIR_2_ : db " %3 File(s)\r %1 byte(s)\r\n"
|
stN .DIR_2_ : db "\r\n %3 File(s)\r %1 byte(s)\r\n"
|
||||||
DZ " %4 Dir(s)\r %5 byte(s) capacity\r\n"
|
DZ " %4 Dir(s)\r %5 byte(s) capacity\r\n"
|
||||||
stN .DIR_4_ : DZ " Free space %5 byte(s)\r\n"
|
stN .DIR_4_ : DZ " Free space %5 byte(s)\r\n"
|
||||||
stN .DIR_3_ : DZ "%4 %5 %3 %1 %2 \r\n" ;DATE TIME SIZE FILENAME EXT
|
stN .DIR_3_ : DZ "%4 %5 %3 %1 %2 \r\n" ;DATE TIME SIZE FILENAME EXT
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
425
|
427
|
||||||
Loading…
Reference in New Issue
Block a user