write protected partition with 64 kb cluster

This commit is contained in:
Anatoliy Belyanskiy 2024-06-26 04:09:40 +10:00
parent 4cebd03a1a
commit 3480195912
13 changed files with 142 additions and 100 deletions

View File

@ -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

View File

@ -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

View File

@ -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
; ;

View File

@ -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 ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 

View File

@ -24,9 +24,14 @@ RENAME: ;!TEST Current Dir ;[x] 15/10/23
POP HL POP HL
RET C RET C
; ;
.old_EXE: .old_EXE: ;
; !TODO ¢®âª­ãâì âãâ GETWORD, ç⮡ ¬®¦­® ¡ë«® 㤠«ïâì ¯® ®â­®á¨â¥«ì­ë¬ ¯ãâï¬?
;
; [ ] 26/06/2024
CALL CHECK_64kb_CLUSTER
RET C
;
PUSH DE PUSH DE
;LD DE,MASKARE
CALL MASK.name CALL MASK.name
POP DE POP DE
RET C RET C
@ -82,4 +87,4 @@ RENAME: ;!TEST Current Dir ;[x] 15/10/23
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
JP SAVEDIR JP SAVEDIR
; ; ; ;

View File

@ -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

View File

@ -10,8 +10,9 @@
; B - ᥪ㭤ë ; B - ᥪ㭤ë
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1 ; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
PUT_D_T:
PUSH AF ;!FIXIT ­ ¤®? CHECK_64kb_CLUSTER
PUT_D_T: PUSH AF
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
POP AF ; ¤¥áªà¨¯â®à POP AF ; ¤¥áªà¨¯â®à
PUSH DE PUSH DE

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
993 994

View File

@ -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

View File

@ -1 +1 @@
425 427