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 ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
; [ ] 26/06/2024
|
||||
CALL CHECK_64kb_CLUSTER
|
||||
RET C
|
||||
;
|
||||
CALL MASK
|
||||
RET C
|
||||
LD A,FAT_ATTR.NoVolID
|
||||
|
||||
@ -108,8 +108,10 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23 ;CREATE_FN:
|
||||
LD (.PATH0),HL
|
||||
CALL GETWORD
|
||||
RET C
|
||||
; LD HL,TMPNAME
|
||||
; LD DE,MASKARE
|
||||
; [ ] 26/06/2024
|
||||
CALL CHECK_64kb_CLUSTER
|
||||
RET C
|
||||
;
|
||||
JP MASK
|
||||
;
|
||||
; [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 ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
; [ ] 26/06/2024
|
||||
CALL CHECK_64kb_CLUSTER
|
||||
RET C
|
||||
;
|
||||
CALL MASK
|
||||
RET C
|
||||
;
|
||||
|
||||
@ -34,9 +34,11 @@ MKDIR:
|
||||
;
|
||||
.START: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
;LD HL,TMPNAME ; 8.3 ¨¬ï
|
||||
;LD DE,MASKARE ; ¡ãä¥à ¨¬¥¨ 11 ᨬ¢. ä®à¬ â
|
||||
CALL MASK ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
|
||||
; [ ] 26/06/2024
|
||||
CALL CHECK_64kb_CLUSTER
|
||||
RET C
|
||||
;
|
||||
CALL MASK
|
||||
RET C
|
||||
;!TEST optimization à ¥¥ GETWORD 㦥 § £à㧨« ¤¨à¥ªâ®à¨î
|
||||
;CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||
|
||||
@ -9,77 +9,82 @@
|
||||
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
||||
; DE - "new_name.ext",#00 without simbols * ?
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
CALL DIR_PATH_CHECK.forceCheck
|
||||
POP DE
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
.old_EXE:
|
||||
PUSH DE
|
||||
;LD DE,MASKARE
|
||||
CALL MASK.name
|
||||
POP DE
|
||||
RET C
|
||||
;!TEST optimization
|
||||
;LD HL,MASKARE
|
||||
;LD BC,11
|
||||
;LD A,"?"
|
||||
;CPIR
|
||||
;LD A,DSS_Error.sys.INVALID_NAME
|
||||
;SCF
|
||||
CALL CHECK_NAME
|
||||
;
|
||||
RET Z
|
||||
PUSH DE
|
||||
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||
;LD A,#33
|
||||
LD A,FAT_ATTR.NoSYSnoVolID
|
||||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||
POP HL
|
||||
RET C
|
||||
;LD DE,MASKARE
|
||||
CALL MASK.name
|
||||
RET C
|
||||
;!TEST optimization
|
||||
;LD HL,MASKARE
|
||||
;LD BC,11
|
||||
;LD A,"?"
|
||||
;CPIR
|
||||
;LD A,DSS_Error.sys.INVALID_NAME
|
||||
;SCF
|
||||
CALL CHECK_NAME
|
||||
;
|
||||
RET Z
|
||||
PUSH IX
|
||||
LD A,FAT_ATTR.NoSYSnoVolID
|
||||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||
POP IX
|
||||
LD A,DSS_Error.sys.FILE_EXISTS
|
||||
CCF
|
||||
RET C
|
||||
RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
CALL DIR_PATH_CHECK.forceCheck
|
||||
POP DE
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
.old_EXE: ;
|
||||
; !TODO ¢®âªãâì âãâ GETWORD, ç⮡ ¬®¦® ¡ë«® 㤠«ïâì ¯® ®â®á¨â¥«ìë¬ ¯ãâï¬?
|
||||
;
|
||||
; [ ] 26/06/2024
|
||||
CALL CHECK_64kb_CLUSTER
|
||||
RET C
|
||||
;
|
||||
PUSH DE
|
||||
CALL MASK.name
|
||||
POP DE
|
||||
RET C
|
||||
;!TEST optimization
|
||||
;LD HL,MASKARE
|
||||
;LD BC,11
|
||||
;LD A,"?"
|
||||
;CPIR
|
||||
;LD A,DSS_Error.sys.INVALID_NAME
|
||||
;SCF
|
||||
CALL CHECK_NAME
|
||||
;
|
||||
RET Z
|
||||
PUSH DE
|
||||
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||
;LD A,#33
|
||||
LD A,FAT_ATTR.NoSYSnoVolID
|
||||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||
POP HL
|
||||
RET C
|
||||
;LD DE,MASKARE
|
||||
CALL MASK.name
|
||||
RET C
|
||||
;!TEST optimization
|
||||
;LD HL,MASKARE
|
||||
;LD BC,11
|
||||
;LD A,"?"
|
||||
;CPIR
|
||||
;LD A,DSS_Error.sys.INVALID_NAME
|
||||
;SCF
|
||||
CALL CHECK_NAME
|
||||
;
|
||||
RET Z
|
||||
PUSH IX
|
||||
LD A,FAT_ATTR.NoSYSnoVolID
|
||||
CALL SEARCH.Custom ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||
POP IX
|
||||
LD A,DSS_Error.sys.FILE_EXISTS
|
||||
CCF
|
||||
RET C
|
||||
|
||||
SET_PAGE_X DIRPAGE
|
||||
EX AF,AF'
|
||||
;
|
||||
LD HL,MASKARE
|
||||
LD D,XH
|
||||
LD E,XL
|
||||
LD BC,11
|
||||
LDIR
|
||||
;
|
||||
CALL DELETE_LFN_RECORDS ; [ ] 㤠«¥¨¥ § ¯¨á¨ LFN
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
JP SAVEDIR
|
||||
;
|
||||
EX AF,AF'
|
||||
;
|
||||
LD HL,MASKARE
|
||||
LD D,XH
|
||||
LD E,XL
|
||||
LD BC,11
|
||||
LDIR
|
||||
;
|
||||
CALL DELETE_LFN_RECORDS ; [ ] 㤠«¥¨¥ § ¯¨á¨ LFN
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
JP SAVEDIR
|
||||
; ; ;
|
||||
@ -30,6 +30,10 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
||||
;
|
||||
.START: CALL GETWORD
|
||||
RET C
|
||||
; [ ] 26/06/2024
|
||||
CALL CHECK_64kb_CLUSTER
|
||||
RET C
|
||||
;
|
||||
CALL MASK
|
||||
RET C
|
||||
;!TEST optimization
|
||||
|
||||
@ -10,22 +10,23 @@
|
||||
; B - ᥪã¤ë
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
PUT_D_T:
|
||||
PUSH AF
|
||||
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||
POP AF ; ¤¥áªà¨¯â®à
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
CALL SET_FM
|
||||
POP BC
|
||||
POP DE
|
||||
RET C
|
||||
; [ ] VFAT
|
||||
LD (IY + _sFM.FS_REC.TIME),E
|
||||
LD (IY + _sFM.FS_REC.TIME+1),D
|
||||
LD (IY + _sFM.FS_REC.DATE),C
|
||||
LD (IY + _sFM.FS_REC.DATE+1),B
|
||||
SET 7,(IY + _sFM.ACCESS_MODE) ;R006 ; ãáâ. ¯à¨§ ª ¨§¬¥¥¨ï ä ©«
|
||||
AND A
|
||||
RET
|
||||
|
||||
;!FIXIT ¤®? CHECK_64kb_CLUSTER
|
||||
PUT_D_T: PUSH AF
|
||||
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||
POP AF ; ¤¥áªà¨¯â®à
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
CALL SET_FM
|
||||
POP BC
|
||||
POP DE
|
||||
RET C
|
||||
; [ ] VFAT
|
||||
LD (IY + _sFM.FS_REC.TIME),E
|
||||
LD (IY + _sFM.FS_REC.TIME+1),D
|
||||
LD (IY + _sFM.FS_REC.DATE),C
|
||||
LD (IY + _sFM.FS_REC.DATE+1),B
|
||||
SET 7,(IY + _sFM.ACCESS_MODE) ;R006 ; ãáâ. ¯à¨§ ª ¨§¬¥¥¨ï ä ©«
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
@ -37,6 +37,10 @@ WRITE: ;!TEST ;!TODO 5/12/23 ; [ ]
|
||||
LD A,(IY + _sFM.DRIVE)
|
||||
CALL OPENDSK
|
||||
JR C,.ERR1
|
||||
; [ ] 26/06/2024
|
||||
CALL CHECK_64kb_CLUSTER
|
||||
RET C
|
||||
;
|
||||
CALL GET_OFFSET_IN_SECTORS
|
||||
;
|
||||
JP NZ,.WOV1
|
||||
|
||||
@ -166,9 +166,10 @@ RST_38_IM1: JP .Handler
|
||||
POP AF
|
||||
JR .Portal
|
||||
;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
;
|
||||
;NMI: RETN
|
||||
;
|
||||
@ -180,6 +181,7 @@ RST_38_IM1: JP .Handler
|
||||
NMI_0x66: RETN ;JP NMI ;
|
||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||
;
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
;
|
||||
RST_10: PUSH HL
|
||||
@ -404,6 +406,19 @@ ADRST10: ;DS 512 ;,0
|
||||
INCLUDE "Procedures.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 ª ¡ãä¥à ¬
|
||||
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï DSS
|
||||
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
||||
|
||||
@ -579,7 +579,8 @@ LOAD_SAVE_DIR_PREPARE:
|
||||
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ ) de ix iy
|
||||
; ¨ á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£
|
||||
WRT_HND: SET_PAGE_X DIRPAGE
|
||||
WRT_HND:
|
||||
SET_PAGE_X DIRPAGE
|
||||
EX AF,AF'
|
||||
LD HL,DIRPAGE.buffer
|
||||
;!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 .ON_ : DZ "on"
|
||||
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"
|
||||
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
|
||||
|
||||
@ -1 +1 @@
|
||||
425
|
||||
427
|
||||
Loading…
Reference in New Issue
Block a user