mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-18 10:50:34 +03:00
и ещё немного
This commit is contained in:
parent
bd5919fdc4
commit
69829e359a
@ -46,8 +46,12 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
CALL G_CLUST
|
CALL G_CLUST
|
||||||
RET C
|
RET C
|
||||||
PUSH HL
|
; [x] fat32
|
||||||
; [ ] fat32
|
PUSH HL ; ¬« ¤è¨© ®¬¥à ᥪâ®à
|
||||||
|
EXX
|
||||||
|
PUSH HL ; áâ à訩 ®¬¥à ᥪâ®à
|
||||||
|
EXX
|
||||||
|
;
|
||||||
CALL WRITE_TO_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
CALL WRITE_TO_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
@ -55,35 +59,50 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD BC,11
|
LD BC,11
|
||||||
LDIR
|
LDIR
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD A,#10 ; âਡãâ § ¯¨á¨ ª â «®£
|
LD A,FAT_ATTR.DIRECTORY ; âਡãâ § ¯¨á¨ ª â «®£
|
||||||
|
; _sFAT_DIRECTORY_RECORD.ATTRIBUT
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
LD BC,#0A00 ; b=áç¥â稪
|
LD BC,#0800 ; b=áç¥â稪
|
||||||
;
|
;
|
||||||
.loop1: LD (HL),C
|
.loop1: LD (HL),C
|
||||||
INC HL
|
INC HL
|
||||||
DJNZ .loop1
|
DJNZ .loop1
|
||||||
;
|
; _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H
|
||||||
PUSH HL
|
; [x] fat32 § ¯¨áì áâ à襣® ®¬¥à ª« áâ¥à .FIRST_CLUSTER_H
|
||||||
CALL SYSTIME ; ã§ âì ⥪. ¤ âã ¨ ¢à¥¬ï
|
|
||||||
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
|
||||||
POP HL
|
|
||||||
LD (HL),E ; de=¢à¥¬ï
|
|
||||||
INC HL
|
|
||||||
LD (HL),D
|
|
||||||
INC HL
|
|
||||||
LD (HL),C ; ¤¥ì
|
|
||||||
INC HL
|
|
||||||
LD (HL),B ; ¬¥áïæ
|
|
||||||
INC HL
|
|
||||||
POP DE
|
POP DE
|
||||||
PUSH DE
|
PUSH DE ; áâ à訩 ®¬¥à ᥪâ®à
|
||||||
LD (HL),E
|
LD (HL),E
|
||||||
INC HL
|
INC HL
|
||||||
LD (HL),D
|
LD (HL),D
|
||||||
INC HL
|
INC HL
|
||||||
|
; [ ] fat32 & VFAT
|
||||||
|
PUSH HL
|
||||||
|
CALL SYSTIME ; ã§ âì ⥪. ¤ âã ¨ ¢à¥¬ï
|
||||||
|
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||||
|
POP HL
|
||||||
|
; _sFAT_DIRECTORY_RECORD.TIME
|
||||||
|
LD (HL),E ; de=¢à¥¬ï
|
||||||
|
INC HL
|
||||||
|
LD (HL),D
|
||||||
|
INC HL
|
||||||
|
; _sFAT_DIRECTORY_RECORD.DATE
|
||||||
|
LD (HL),C ; ¤¥ì
|
||||||
|
INC HL
|
||||||
|
LD (HL),B ; ¬¥áïæ
|
||||||
|
INC HL
|
||||||
|
; § ¯¨áì ¬« ¤è¥£® ®¬¥à ª« áâ¥à .FIRST_CLUSTER_L
|
||||||
|
POP BC ; áâ à訩 ®¬¥à ᥪâ®à
|
||||||
|
POP DE ; ¬« ¤è¨© ®¬¥à ᥪâ®à
|
||||||
|
PUSH DE
|
||||||
|
PUSH BC
|
||||||
|
; _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L
|
||||||
|
LD (HL),E
|
||||||
|
INC HL
|
||||||
|
LD (HL),D
|
||||||
|
INC HL
|
||||||
|
; _sFAT_DIRECTORY_RECORD.F_SIZE
|
||||||
LD BC,#0400 ; b=áç¥â稪
|
LD BC,#0400 ; b=áç¥â稪
|
||||||
;
|
|
||||||
.loop2: LD (HL),C
|
.loop2: LD (HL),C
|
||||||
INC HL
|
INC HL
|
||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
@ -97,9 +116,9 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
.loop3: INC HL
|
.loop3: INC HL
|
||||||
LD (HL),C
|
LD (HL),C
|
||||||
DJNZ .loop3
|
DJNZ .loop3
|
||||||
;
|
; ᪮¯¨à®¢ âì ¡ ©âë 11..31 _sFAT_DIRECTORY_RECORD
|
||||||
INC HL
|
INC HL
|
||||||
LD DE,HANDBUF+11 ; ï祩ª âਡã⮢ ä ©«
|
LD DE,HANDBUF+_sFAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD BC,21
|
LD BC,21
|
||||||
LDIR
|
LDIR
|
||||||
@ -118,16 +137,16 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
LD A,(DIRPAGE.buffer)
|
LD A,(DIRPAGE.buffer)
|
||||||
CP "."
|
CP "."
|
||||||
LD DE,DIRPAGE.buffer+11 ; âਡãâë § ¯¨á¨ ;!HARDCODE
|
LD DE,DIRPAGE.buffer + _sFAT_DIRECTORY_RECORD.ATTRIBUT ; âਡãâë § ¯¨á¨
|
||||||
JP Z,.MKD04
|
JP Z,.MKD04
|
||||||
LD IX,HANDBUF
|
LD IX,HANDBUF
|
||||||
XOR A
|
XOR A
|
||||||
; [ ] fat32
|
; [ ] fat32 à §®¡à âìáï
|
||||||
LD (IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A
|
LD (IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A
|
||||||
LD (IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A
|
LD (IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A
|
||||||
LD DE,HANDBUF + _sFAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
LD DE,HANDBUF + _sFAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
||||||
.MKD04: EX DE,HL
|
.MKD04: EX DE,HL
|
||||||
LD BC,HANDBUF.SIZE - _sFAT_DIRECTORY_RECORD.ATTRIBUT
|
LD BC,HANDBUF.SIZE - _sFAT_DIRECTORY_RECORD.ATTRIBUT ; 21
|
||||||
LDIR
|
LDIR
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -140,7 +159,9 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD BC,512-65 ;!HARDCODE
|
LD BC,512-65 ;!HARDCODE
|
||||||
LDIR
|
LDIR
|
||||||
;
|
;
|
||||||
POP HL
|
POP HL ; áâ à訩 ®¬¥à ᥪâ®à
|
||||||
|
EXX
|
||||||
|
POP HL ; ¬« ¤è¨© ®¬¥à ᥪâ®à
|
||||||
CALL CLUSTER_TO_SECTOR
|
CALL CLUSTER_TO_SECTOR
|
||||||
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster) ; ᥪâ®à®¢ ª« áâ¥à
|
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster) ; ᥪâ®à®¢ ª« áâ¥à
|
||||||
.MKD12: PUSH AF
|
.MKD12: PUSH AF
|
||||||
|
|||||||
@ -22,8 +22,10 @@ R_CLUST: LD HL,#0001
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
; ©â¨ ¯¥à¢ë© ᢮¡®¤ë© ª« áâ¥à ;!TODO ¯à®¢¥à¨âì ¯¥à¥¡®à ª« áâ¥à®¢
|
|
||||||
; [x] fat32 ;!TEST
|
; [x] fat32 ;!TEST
|
||||||
|
; ©â¨ ¯¥à¢ë© ᢮¡®¤ë© ª« áâ¥à ;!TODO ¯à®¢¥à¨âì ¯¥à¥¡®à ª« áâ¥à®¢
|
||||||
|
; ¢ë室: HL - ¬« ¤è¨© ®¬¥à ᢮¡®¤®£® ª« áâ¥à
|
||||||
|
; HL' - áâ à訩 ®¬¥à ᢮¡®¤®£® ª« áâ¥à
|
||||||
G_CLUST: ;
|
G_CLUST: ;
|
||||||
.low+1: LD HL,#0001
|
.low+1: LD HL,#0001
|
||||||
.loop: INC HL ; ®¬¥à ª« áâ¥à
|
.loop: INC HL ; ®¬¥à ª« áâ¥à
|
||||||
@ -31,7 +33,7 @@ G_CLUST: ;
|
|||||||
OR H
|
OR H
|
||||||
; [x] fat32
|
; [x] fat32
|
||||||
EXX
|
EXX
|
||||||
.high+1: LD HL,0
|
.high+1: LD HL,#0000
|
||||||
JR NZ,.no_inc
|
JR NZ,.no_inc
|
||||||
INC HL
|
INC HL
|
||||||
.no_inc: EXX
|
.no_inc: EXX
|
||||||
@ -39,7 +41,8 @@ G_CLUST: ;
|
|||||||
CALL READ_FROM_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
CALL READ_FROM_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||||||
CP DSS_Error.sys.DISK_FULL
|
CP DSS_Error.sys.DISK_FULL
|
||||||
SCF
|
SCF
|
||||||
RET Z ; ®è¨¡ª ?
|
RET Z
|
||||||
|
;
|
||||||
EXX
|
EXX
|
||||||
LD A,D
|
LD A,D
|
||||||
OR E
|
OR E
|
||||||
@ -51,33 +54,54 @@ G_CLUST: ;
|
|||||||
EXX
|
EXX
|
||||||
LD (G_CLUST.high),HL
|
LD (G_CLUST.high),HL
|
||||||
EXX
|
EXX
|
||||||
; XOR A
|
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; HL - CLUSTER
|
; <20>ਪ९¨âì ª ¯®á«¥¤¥¬ã ª« áâ¥àã æ¥¯®çª¨ ®¢ë© ¯ãá⮩ ª« áâ¥à
|
||||||
; [ ] fat32
|
; ‚室: HL':HL - ®¬¥à ª« áâ¥à ª ª®â®à®¬ã ¯à¨ªà¥¯¨âì ¯ãá⮩
|
||||||
|
; ‚ë室: HL':HL - ®¬¥à ª« áâ¥à ª ª®â®à®¬ã ¯à¨ªà¥¯¨«áï ¯ãá⮩
|
||||||
|
; DE':DE - ®¬¥à ¯ãá⮣® ª« áâ¥à
|
||||||
|
; [x] fat32 ;!TEST
|
||||||
INC_FAT:
|
INC_FAT:
|
||||||
PUSH HL
|
PUSH HL ; ⥪ã騩 ª« áâ¥à
|
||||||
CALL G_CLUST
|
EXX
|
||||||
POP DE
|
PUSH HL ; ⥪ã騩 ª« áâ¥à
|
||||||
RET C
|
EXX
|
||||||
|
;
|
||||||
|
CALL G_CLUST
|
||||||
|
;
|
||||||
|
EXX
|
||||||
|
POP DE ; ⥪ã騩 ª« áâ¥à
|
||||||
|
EXX
|
||||||
|
POP DE ; ⥪ã騩 ª« áâ¥à
|
||||||
|
RET C
|
||||||
|
; HL':HL - ᢮¡®¤ë© ª« áâ¥à, DE':DE - ⥪ã騩 ª« áâ¥à
|
||||||
;
|
;
|
||||||
PUSH HL
|
|
||||||
; PUSH HL
|
|
||||||
; EX DE,HL ; hl=®¬¥à ª« áâ¥à
|
|
||||||
; .loop: CALL READ_FROM_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
|
||||||
; EX DE,HL
|
|
||||||
; JR NC,.loop ; ¥ ª®¥æ 楯®çª¨
|
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
; POP DE ; ®¬¥à ª« áâ¥à
|
EXX
|
||||||
|
EX DE,HL
|
||||||
|
EXX
|
||||||
|
;
|
||||||
CALL WRITE_TO_FAT.Custom ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
CALL WRITE_TO_FAT.Custom ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
;!FIXIT <¥â ª®âà®«ï ®è¨¡ª¨>
|
;!FIXIT <¥â ª®âà®«ï ®è¨¡ª¨>
|
||||||
;
|
;
|
||||||
POP HL
|
PUSH HL
|
||||||
|
EX DE,HL
|
||||||
|
EXX
|
||||||
|
PUSH HL
|
||||||
|
EX DE,HL
|
||||||
|
EXX
|
||||||
|
;
|
||||||
CALL WRITE_TO_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
CALL WRITE_TO_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
;!TEST ;!TODO 2/12/23 ; [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WRITE_FAT_TABLE?
|
;!TEST ;!TODO 2/12/23 ; [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WRITE_FAT_TABLE?
|
||||||
;CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
;CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
;
|
;
|
||||||
|
EXX
|
||||||
|
POP DE
|
||||||
|
EX DE,HL
|
||||||
|
EXX
|
||||||
|
POP DE
|
||||||
|
EX DE,HL
|
||||||
|
;
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
;RX01
|
;RX01
|
||||||
@ -216,10 +240,11 @@ READ_FROM_FAT: CALL CHECK_CLUSTER_IS_SMALLER
|
|||||||
; ‡ ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
; ‡ ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
; ¢å®¤: hl = ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ¢ ª®â®àë© § ¯¨á âì
|
; ¢å®¤: hl = ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ¢ ª®â®àë© § ¯¨á âì
|
||||||
; hl' = áâ à襥 á«®¢® ®¬¥à ª« áâ¥à ¢ ª®â®àë© § ¯¨á âì (⮫쪮 ¤«ï fat32)
|
; hl' = áâ à襥 á«®¢® ®¬¥à ª« áâ¥à ¢ ª®â®àë© § ¯¨á âì (⮫쪮 ¤«ï fat32)
|
||||||
; .Custom:
|
|
||||||
; de = ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ª®â®à®¥ ¢¯¨á âì
|
; de = ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ª®â®à®¥ ¢¯¨á âì
|
||||||
; de' = áâ à襥 á«®¢® ®¬¥à ª« áâ¥à ª®â®à®¥ ¢¯¨á âì (⮫쪮 ¤«ï fat32)
|
; de' = áâ à襥 á«®¢® ®¬¥à ª« áâ¥à ª®â®à®¥ ¢¯¨á âì (⮫쪮 ¤«ï fat32)
|
||||||
; ¢ë室: â ª®© ¦¥ ª ª ¨ ¢å®¤
|
; ¢ë室: HL':HL â ª¨¥ ¦¥ ª ª ¨ ¢å®¤¥
|
||||||
|
; .Custom:
|
||||||
|
; HL':HL ¨ DE':DE â ª¨¥ ¦¥ ª ª ¨ ¢å®¤¥
|
||||||
;------------------------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------------------------
|
||||||
; [x] fat32 ;!TEST
|
; [x] fat32 ;!TEST
|
||||||
WRITE_TO_FAT: LD DE,(FatBuffer.ENDCLUS_LOW) ; ®¬¥à ª« áâ¥à
|
WRITE_TO_FAT: LD DE,(FatBuffer.ENDCLUS_LOW) ; ®¬¥à ª« áâ¥à
|
||||||
@ -280,6 +305,7 @@ WRITE_TO_FAT: LD DE,(FatBuffer.ENDCLUS_LOW) ;
|
|||||||
JR .exit
|
JR .exit
|
||||||
;
|
;
|
||||||
.Correct_1: ; ¢«¥¢® 4 ¡¨âa
|
.Correct_1: ; ¢«¥¢® 4 ¡¨âa
|
||||||
|
PUSH DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
@ -293,6 +319,7 @@ WRITE_TO_FAT: LD DE,(FatBuffer.ENDCLUS_LOW) ;
|
|||||||
LD (HL),A ; á®åà. ¢ ª¥è¥ FAT-
|
LD (HL),A ; á®åà. ¢ ª¥è¥ FAT-
|
||||||
INC HL ; ®¬¥à ª« áâ¥à
|
INC HL ; ®¬¥à ª« áâ¥à
|
||||||
LD (HL),D
|
LD (HL),D
|
||||||
|
POP DE
|
||||||
JR .exit
|
JR .exit
|
||||||
;
|
;
|
||||||
.FAT32: ; [x] fat32 ;!TEST
|
.FAT32: ; [x] fat32 ;!TEST
|
||||||
@ -619,7 +646,6 @@ CLUSTER_TO_SECTOR:
|
|||||||
;LD E,A
|
;LD E,A
|
||||||
;
|
;
|
||||||
ADC HL,DE
|
ADC HL,DE
|
||||||
;!TODO ¤® «¨ ¯à®¢¥àïâì ¯¥à¥¯®«¥¨¥ HL:IX?
|
|
||||||
RET
|
RET
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
@ -868,15 +894,15 @@ BLOK_WR: PUSH BC
|
|||||||
JR NC,.next
|
JR NC,.next
|
||||||
; end of chain - get new cluster
|
; end of chain - get new cluster
|
||||||
; [ ] fat32
|
; [ ] fat32
|
||||||
PUSH HL
|
; PUSH HL
|
||||||
EXX
|
; EXX
|
||||||
PUSH HL
|
; PUSH HL
|
||||||
EXX
|
; EXX
|
||||||
CALL INC_FAT
|
CALL INC_FAT
|
||||||
EXX
|
; EXX
|
||||||
POP HL
|
; POP HL
|
||||||
EXX
|
; EXX
|
||||||
POP HL
|
; POP HL
|
||||||
JP C,.Error_6
|
JP C,.Error_6
|
||||||
;
|
;
|
||||||
CALL READ_FROM_FAT
|
CALL READ_FROM_FAT
|
||||||
@ -957,11 +983,11 @@ BLOK_WR: PUSH BC
|
|||||||
PUSH BC
|
PUSH BC
|
||||||
CALL READ_FROM_FAT
|
CALL READ_FROM_FAT
|
||||||
JR NC,.WR9
|
JR NC,.WR9
|
||||||
PUSH HL
|
;PUSH HL
|
||||||
CALL INC_FAT
|
CALL INC_FAT
|
||||||
POP HL
|
;POP HL
|
||||||
JR C,.ErrorFull
|
JR C,.ErrorFull
|
||||||
CALL READ_FROM_FAT
|
;CALL READ_FROM_FAT
|
||||||
.WR9: POP BC
|
.WR9: POP BC
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
955
|
947
|
||||||
Loading…
Reference in New Issue
Block a user