This commit is contained in:
Anatoliy Belyanskiy 2024-03-06 02:47:36 +10:00
parent 327a8e5405
commit 6ef1af993d
3 changed files with 51 additions and 34 deletions

View File

@ -969,7 +969,7 @@ FDC_93:
; ;
;*************************************** ;***************************************
; !FIXIT ¨á¯®«ì§®¢ âì áâàãªâãàã _sBOOT_SEC ; !FIXIT ¨á¯®«ì§®¢ âì áâàãªâãàã _sBOOT_SECTOR
SEC_SIZE EQU 11 SEC_SIZE EQU 11
CLAST_SIZE EQU 13 CLAST_SIZE EQU 13
RESERV_SECS EQU 14 RESERV_SECS EQU 14

View File

@ -1,32 +1,56 @@
; ;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
STRUCT _sBOOT_SECTOR
PARAMS _sBOOT_SEC
ENDS
STRUCT _sBOOT_SEC ; 62 bytes STRUCT _sBOOT_SEC ; 62 bytes
.JMP: BLOCK 3,0 ; +#00 "JMP" JMP BLOCK 3,0 ; +#00 "JMP"
.ID_NAME: TEXT 8, {"DSS_1.7","0"} ; +#03 DOS NAME - DB "DSS_1.70" ID_NAME TEXT 8, {"DSS_1.7","0"} ; +#03 DOS NAME - DB "DSS_1.70"
; Block Parameters BIOS ; Block Parameters BIOS
.B_P_S: WORD #200 ; +#0B BYTE PER SECTOR B_P_S WORD #200 ; +#0B BYTE PER SECTOR
.S_P_C: BYTE 2 ; +#0D SECTORS PER CLUSTER S_P_C BYTE 2 ; +#0D SECTORS PER CLUSTER
.RESERVE: WORD 1 ; +#0E RESERVE SECTORS RESERVE WORD 1 ; +#0E RESERVE SECTORS
.FAT_NUM: BYTE 2 ; +#10 AMOUNT FATS FAT_NUM BYTE 2 ; +#10 AMOUNT FATS
.F_P_DIR: WORD 112 ; +#11 FILES IN DIRECTORY F_P_DIR WORD 112 ; +#11 FILES IN DIRECTORY
.S_P_D: WORD 1440 ; +#13 ALL SECTORS ON DISK S_P_D WORD 1440 ; +#13 ALL SECTORS ON DISK
.ID_FORM: BYTE #F0 ; +#15 ID FORMAT ID_FORM BYTE #F0 ; +#15 ID FORMAT
.S_P_F: WORD 2 ; +#16 SIZE FAT IN SECTORS S_P_F WORD 2 ; +#16 SIZE FAT IN SECTORS
.S_P_T: WORD 9 ; +#18 SECTOR PER TRACK S_P_T WORD 9 ; +#18 SECTOR PER TRACK
.HEADS: WORD 2 ; +#1A AMOUNT SIDES HEADS WORD 2 ; +#1A AMOUNT SIDES
.HIDDEN: DWORD 0 ; +#1C HIDDEN SECTORS HIDDEN DWORD 0 ; +#1C HIDDEN SECTORS
.BPB_BIG_TOTAL_SECTORS: DWORD 0 ; +#20 BIG TOTAL SECTOR BPB_BIG_TOTAL_SECTORS DWORD 0 ; +#20 BIG TOTAL SECTOR
.BPB_PHISICAL_DRIVE_NUMBER: WORD #80 ; +#24 PHISICAL DRIVE NUMBER BPB_PHISICAL_DRIVE_NUMBER WORD #80 ; +#24 PHISICAL DRIVE NUMBER
.BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; +#26 EXTENDED BOOT RECORD SIGNATURE BPB_EXT_BOOT_RECORD_SIGNATURE BYTE #29 ; +#26 EXTENDED BOOT RECORD SIGNATURE
.BPB_SERIAL_NUMBER: DWORD 0 ; +#27 VOLUME SERIAL NUMBER BPB_SERIAL_NUMBER DWORD 0 ; +#27 VOLUME SERIAL NUMBER
.BPB_LABEL: TEXT 11, {"NO NAME"," "} ; +#2B DISK LABEL BPB_LABEL TEXT 11, {"NO NAME"," "} ; +#2B DISK LABEL
.ID_FAT: TEXT 8, {"FAT16"," "} ; +#36 FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters! ID_FAT TEXT 8, {"FAT16"," "} ; +#36 FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters!
;.BOOT_CODE BLOCK 448,0 ; +#3E boot loader's code ;.BOOT_CODE BLOCK 448,0 ; +#3E boot loader's code
;.SIGNATURE WORD #AA55 ; +#1FE Signature ;.MBR_PARTITION_TABLE BLOCK 4*16 ; +#1BE table = 4x16 bytes
;.MBR_SIGNATURE WORD #AA55 ; +#1FE Signature
ENDS ENDS
; ;
STRUCT _sMBR_Table STRUCT _sMBR_PARTITION_TABLE, #01BE ; MBR: Offset of partition table in the MBR
Record_1 _sMBR_PARTITION_RECORD ; +#01BE
Record_2 _sMBR_PARTITION_RECORD ; +#01CE
Record_3 _sMBR_PARTITION_RECORD ; +#01DE
Record_4 _sMBR_PARTITION_RECORD ; +#01EE
MBR_SIGNATURE WORD #AA55 ; +#01FE
ENDS
STRUCT _sMBR_PARTITION_RECORD
isActive BYTE 0 ; +#00
Start_head BYTE 0 ; +#01
Start_sector BYTE 0 ; +#02
Start_cylinder BYTE 0 ; +#03
FS_ID BYTE 0 ; +#04
End_head BYTE 0 ; +#05
End_sector BYTE 0 ; +#06
End_cylinder BYTE 0 ; +#07
Start_LBA DWORD 0 ; +#08
Size_LBA DWORD 0 ; +#0C
ENDS ENDS
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -314,18 +338,9 @@ PartitionSysTypes:
; FSI_Free_Count 488 ; FAT32 FSI: Number of free clusters (DWORD) ; FSI_Free_Count 488 ; FAT32 FSI: Number of free clusters (DWORD)
; FSI_Nxt_Free 492 ; FAT32 FSI: Last allocated cluster (DWORD) ; FSI_Nxt_Free 492 ; FAT32 FSI: Last allocated cluster (DWORD)
; MBR_Table 446 ; MBR: Offset of partition table in the MBR
; SZ_PTE 16 ; MBR: Size of a partition table entry
; PTE_Boot 0 ; MBR PTE: Boot indicator
; PTE_StHead 1 ; MBR PTE: Start head
; PTE_StSec 2 ; MBR PTE: Start sector
; PTE_StCyl 3 ; MBR PTE: Start cylinder
; PTE_System 4 ; MBR PTE: System ID
; PTE_EdHead 5 ; MBR PTE: End head
; PTE_EdSec 6 ; MBR PTE: End sector
; PTE_EdCyl 7 ; MBR PTE: End cylinder
; PTE_StLba 8 ; MBR PTE: Start in LBA
; PTE_SizLba 12 ; MBR PTE: Size in LBA
; GPTH_Sign 0 ; GPT: Header signature (8-byte) ; GPTH_Sign 0 ; GPT: Header signature (8-byte)
; GPTH_Rev 8 ; GPT: Revision (DWORD) ; GPTH_Rev 8 ; GPT: Revision (DWORD)

View File

@ -291,6 +291,7 @@ CfaPowerMode1 WORD ; 160 320
ReservedBlock161 BLOCK 14 ; 161 322 ReservedBlock161 BLOCK 14 ; 161 322
NominalFormFactor WORD ; 168 336 NominalFormFactor WORD ; 168 336
/*
struct { struct {
USHORT SupportsTrim : 1 USHORT SupportsTrim : 1
@ -359,4 +360,5 @@ NominalFormFactor WORD ; 168 336
USHORT ReservedWord236[19] USHORT ReservedWord236[19]
USHORT Signature : 8 USHORT Signature : 8
USHORT CheckSum : 8 USHORT CheckSum : 8
*/
ENDS ENDS