mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
SHELL: fixed bug in read_disk_info with .full
CORE: добавлены дополнительные проверки ФС раздела в FAT_BPB
This commit is contained in:
parent
17b7bb938a
commit
ec139d5761
@ -723,6 +723,9 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
CP #F0
|
CP #F0
|
||||||
JP C,RD_BPB.UnknownBPB
|
JP C,RD_BPB.UnknownBPB
|
||||||
;
|
;
|
||||||
|
XOR A
|
||||||
|
LD (.UsesVarsFAT32),A
|
||||||
|
;
|
||||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.BytesPerSector)
|
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.BytesPerSector)
|
||||||
LD (CORE_BUFFERS.FS_Buffer.BytesPerSector),HL
|
LD (CORE_BUFFERS.FS_Buffer.BytesPerSector),HL
|
||||||
LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerCluster)
|
LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerCluster)
|
||||||
@ -753,6 +756,7 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
OR D
|
OR D
|
||||||
JR NZ,.skip_high
|
JR NZ,.skip_high
|
||||||
;
|
;
|
||||||
|
LD (.UsesVarsFAT32),A
|
||||||
EXX
|
EXX
|
||||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerFAT32 + 2)
|
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerFAT32 + 2)
|
||||||
LD A,E
|
LD A,E
|
||||||
@ -766,6 +770,7 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
LD (CORE_BUFFERS.FS_Buffer.Number_Of_FATs),A
|
LD (CORE_BUFFERS.FS_Buffer.Number_Of_FATs),A
|
||||||
CP 1
|
CP 1
|
||||||
JR Z,.one_FAT
|
JR Z,.one_FAT
|
||||||
|
JP C,RD_BPB.UnknownBPB
|
||||||
DEC A
|
DEC A
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
LD (CORE_BUFFERS.FS_Buffer.FAT2_SEC_L),HL
|
LD (CORE_BUFFERS.FS_Buffer.FAT2_SEC_L),HL
|
||||||
@ -791,7 +796,6 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
; ¬®¦® áà §ã âãâ § £ âì áâ à訩 ¡ ©â, ¯®â®¬ã-çâ® ¤« FAT32 á«¥¤ãî騩 à áçñâ - íâ® ¯à¨¡ ¢«¥¨¥ ã«ï.
|
; ¬®¦® áà §ã âãâ § £ âì áâ à訩 ¡ ©â, ¯®â®¬ã-çâ® ¤« FAT32 á«¥¤ãî騩 à áçñâ - íâ® ¯à¨¡ ¢«¥¨¥ ã«ï.
|
||||||
LD (CORE_BUFFERS.FS_Buffer.FirstDataSector_H),HL
|
LD (CORE_BUFFERS.FS_Buffer.FirstDataSector_H),HL
|
||||||
EXX
|
EXX
|
||||||
;LD (CORE_BUFFERS.FS_Buffer.FirstDataSector_H),BC
|
|
||||||
;
|
;
|
||||||
LD BC,(CORE_BUFFERS.FS_Buffer.BytesPerSector)
|
LD BC,(CORE_BUFFERS.FS_Buffer.BytesPerSector)
|
||||||
LD A,B
|
LD A,B
|
||||||
@ -813,12 +817,18 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
;
|
;
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FilesInRootDIR) ; 0 for fat32
|
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FilesInRootDIR) ; 0 for fat32
|
||||||
; [ ]fat32 ;!TEST
|
; fat32
|
||||||
LD A,H
|
LD A,H
|
||||||
OR L
|
OR L
|
||||||
JR Z,.skip_loop2
|
;JR Z,.skip_loop2
|
||||||
|
JR NZ,.filesRoot
|
||||||
;
|
;
|
||||||
DEC HL
|
INC A
|
||||||
|
LD (.UsesVarsFAT32),A
|
||||||
|
DEC A
|
||||||
|
JR .skip_loop2
|
||||||
|
;
|
||||||
|
.filesRoot: DEC HL
|
||||||
XOR A
|
XOR A
|
||||||
;NEXTAD2
|
;NEXTAD2
|
||||||
.loop2: INC A
|
.loop2: INC A
|
||||||
@ -904,15 +914,6 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
;
|
;
|
||||||
.HDDBIG: CALL SectorToCluster
|
.HDDBIG: CALL SectorToCluster
|
||||||
; LD A,(CORE_BUFFERS.FS_Buffer.SectorsPerCluster)
|
|
||||||
; SCF
|
|
||||||
; .loop7: RRA
|
|
||||||
; JR C,.loop7_exit
|
|
||||||
; RR B
|
|
||||||
; RR C
|
|
||||||
; RR H
|
|
||||||
; RR L
|
|
||||||
; JP .loop7
|
|
||||||
;
|
;
|
||||||
.loop7_exit: INC HL
|
.loop7_exit: INC HL
|
||||||
LD (CORE_BUFFERS.FS_Buffer.MaxClusterLow),HL
|
LD (CORE_BUFFERS.FS_Buffer.MaxClusterLow),HL
|
||||||
@ -985,6 +986,10 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
JR C,.its_FAT32
|
JR C,.its_FAT32
|
||||||
;
|
;
|
||||||
; It's FAT16
|
; It's FAT16
|
||||||
|
LD A,(.UsesVarsFAT32)
|
||||||
|
AND A
|
||||||
|
JP NZ,RD_BPB.UnknownBPB
|
||||||
|
;
|
||||||
LD HL,#FFFF
|
LD HL,#FFFF
|
||||||
LD A,FAT_TYPE.x16
|
LD A,FAT_TYPE.x16
|
||||||
.set_vars: EXX
|
.set_vars: EXX
|
||||||
@ -998,7 +1003,11 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT.SERIAL_NUMBER+2)
|
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT.SERIAL_NUMBER+2)
|
||||||
JR .SET_VARS
|
JR .SET_VARS
|
||||||
;
|
;
|
||||||
.its_FAT12: LD HL,#0FFF
|
.its_FAT12: LD A,(.UsesVarsFAT32)
|
||||||
|
AND A
|
||||||
|
JP NZ,RD_BPB.UnknownBPB
|
||||||
|
;
|
||||||
|
LD HL,#0FFF
|
||||||
LD A,FAT_TYPE.x12
|
LD A,FAT_TYPE.x12
|
||||||
JR .set_vars
|
JR .set_vars
|
||||||
;
|
;
|
||||||
@ -1142,6 +1151,8 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
|||||||
LD HL,(CORE_BUFFERS.FS_Buffer.MaxClusterHigh)
|
LD HL,(CORE_BUFFERS.FS_Buffer.MaxClusterHigh)
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
|
.UsesVarsFAT32: DB 0
|
||||||
;;;;;;;;
|
;;;;;;;;
|
||||||
|
|
||||||
; --> BC:HL - Sector
|
; --> BC:HL - Sector
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
47
|
48
|
||||||
@ -256,10 +256,8 @@ cmd_dir: push de
|
|||||||
or a
|
or a
|
||||||
call nz,ToDSS
|
call nz,ToDSS
|
||||||
;
|
;
|
||||||
ld a,(read_disk_info.full)
|
ld a,(read_disk_info.LastDskInfoIsFull)
|
||||||
and a
|
and a
|
||||||
;ld de,MAIN_MSG.CRLF
|
|
||||||
;jp z,ECHO_MESSAGE
|
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
; free space
|
; free space
|
||||||
|
|||||||
@ -37,7 +37,7 @@ read_disk_info: OR #80
|
|||||||
AND E
|
AND E
|
||||||
EXX
|
EXX
|
||||||
INC A
|
INC A
|
||||||
LD (.full),A
|
LD (.LastDskInfoIsFull),A
|
||||||
;
|
;
|
||||||
AND H
|
AND H
|
||||||
|
|
||||||
@ -201,7 +201,10 @@ read_disk_info: OR #80
|
|||||||
DJNZ .loop3
|
DJNZ .loop3
|
||||||
LD HL,serial_string+4
|
LD HL,serial_string+4
|
||||||
LD (HL),'-'
|
LD (HL),'-'
|
||||||
JR read_disk_info.get_label
|
JR .get_label
|
||||||
|
;
|
||||||
|
.LastDskInfoIsFull:
|
||||||
|
DB 0
|
||||||
;
|
;
|
||||||
///////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
free_space_low: WORD 0
|
free_space_low: WORD 0
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
513
|
514
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 1b6a539aea8d46b09a617a90a04a2e45dcb37b3f
|
Subproject commit 25ac1c89f4ce070e041437ddbcdd18ab2ab223be
|
||||||
Loading…
Reference in New Issue
Block a user