mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +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
|
||||
JP C,RD_BPB.UnknownBPB
|
||||
;
|
||||
XOR A
|
||||
LD (.UsesVarsFAT32),A
|
||||
;
|
||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.BytesPerSector)
|
||||
LD (CORE_BUFFERS.FS_Buffer.BytesPerSector),HL
|
||||
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
|
||||
JR NZ,.skip_high
|
||||
;
|
||||
LD (.UsesVarsFAT32),A
|
||||
EXX
|
||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerFAT32 + 2)
|
||||
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
|
||||
CP 1
|
||||
JR Z,.one_FAT
|
||||
JP C,RD_BPB.UnknownBPB
|
||||
DEC A
|
||||
ADD HL,DE
|
||||
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 á«¥¤ãî騩 à áçñâ - íâ® ¯à¨¡ ¢«¥¨¥ ã«ï.
|
||||
LD (CORE_BUFFERS.FS_Buffer.FirstDataSector_H),HL
|
||||
EXX
|
||||
;LD (CORE_BUFFERS.FS_Buffer.FirstDataSector_H),BC
|
||||
;
|
||||
LD BC,(CORE_BUFFERS.FS_Buffer.BytesPerSector)
|
||||
LD A,B
|
||||
@ -813,12 +817,18 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
||||
;
|
||||
EX DE,HL
|
||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FilesInRootDIR) ; 0 for fat32
|
||||
; [ ]fat32 ;!TEST
|
||||
; fat32
|
||||
LD A,H
|
||||
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
|
||||
;NEXTAD2
|
||||
.loop2: INC A
|
||||
@ -904,15 +914,6 @@ FAT_BPB: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.DRIVE_TYPE)
|
||||
SBC HL,DE
|
||||
;
|
||||
.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
|
||||
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
|
||||
;
|
||||
; It's FAT16
|
||||
LD A,(.UsesVarsFAT32)
|
||||
AND A
|
||||
JP NZ,RD_BPB.UnknownBPB
|
||||
;
|
||||
LD HL,#FFFF
|
||||
LD A,FAT_TYPE.x16
|
||||
.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)
|
||||
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
|
||||
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)
|
||||
SBC HL,DE
|
||||
RET
|
||||
;
|
||||
.UsesVarsFAT32: DB 0
|
||||
;;;;;;;;
|
||||
|
||||
; --> BC:HL - Sector
|
||||
|
||||
@ -1 +1 @@
|
||||
47
|
||||
48
|
||||
@ -256,10 +256,8 @@ cmd_dir: push de
|
||||
or a
|
||||
call nz,ToDSS
|
||||
;
|
||||
ld a,(read_disk_info.full)
|
||||
ld a,(read_disk_info.LastDskInfoIsFull)
|
||||
and a
|
||||
;ld de,MAIN_MSG.CRLF
|
||||
;jp z,ECHO_MESSAGE
|
||||
RET Z
|
||||
;
|
||||
; free space
|
||||
|
||||
@ -37,7 +37,7 @@ read_disk_info: OR #80
|
||||
AND E
|
||||
EXX
|
||||
INC A
|
||||
LD (.full),A
|
||||
LD (.LastDskInfoIsFull),A
|
||||
;
|
||||
AND H
|
||||
|
||||
@ -201,7 +201,10 @@ read_disk_info: OR #80
|
||||
DJNZ .loop3
|
||||
LD HL,serial_string+4
|
||||
LD (HL),'-'
|
||||
JR read_disk_info.get_label
|
||||
JR .get_label
|
||||
;
|
||||
.LastDskInfoIsFull:
|
||||
DB 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