This commit is contained in:
Anatoliy Belyanskiy 2024-03-06 22:50:05 +10:00
parent 6ef1af993d
commit e3cd426ded

View File

@ -1,56 +1,63 @@
; ;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
STRUCT _sBOOT_SECTOR STRUCT _sBOOT_SECTOR_PARAMS ; 62 bytes
PARAMS _sBOOT_SEC .JMP BLOCK 3,0 ; +#00 "JMP"
ENDS .ID_NAME TEXT 8, {"DSS_1.7","0"} ; +#03 DOS NAME - DB "DSS_1.70"
STRUCT _sBOOT_SEC ; 62 bytes
JMP BLOCK 3,0 ; +#00 "JMP"
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 .DRIVE_TYPE BYTE #F0 ; +#15 ’¨¯ ãáâனá⢠
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_L WORD 0 ; +#20 BIG TOTAL SECTOR Low word
BPB_PHISICAL_DRIVE_NUMBER WORD #80 ; +#24 PHISICAL DRIVE NUMBER .BPB_BIG_TOTAL_SECTORS_H WORD 0 ; +#22 BIG TOTAL SECTOR High word
BPB_EXT_BOOT_RECORD_SIGNATURE BYTE #29 ; +#26 EXTENDED BOOT RECORD SIGNATURE .BPB_PHISICAL_DRIVE_NUMBER WORD #80 ; +#24 PHISICAL DRIVE NUMBER
BPB_SERIAL_NUMBER DWORD 0 ; +#27 VOLUME SERIAL NUMBER .BPB_EXT_BOOT_RECORD_SIGNATURE BYTE #29 ; +#26 EXTENDED BOOT RECORD SIGNATURE
BPB_LABEL TEXT 11, {"NO NAME"," "} ; +#2B DISK LABEL .BPB_SERIAL_NUMBER DWORD 0 ; +#27 VOLUME SERIAL NUMBER
ID_FAT TEXT 8, {"FAT16"," "} ; +#36 FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters! .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!
;.BOOT_CODE BLOCK 448,0 ; +#3E boot loader's code ;.BOOT_CODE BLOCK 448,0 ; +#3E boot loader's code
;.MBR_PARTITION_TABLE BLOCK 4*16 ; +#1BE table = 4x16 bytes ;.MBR_PARTITION_TABLE BLOCK 4*16 ; +#1BE table = 4x16 bytes
;.MBR_SIGNATURE WORD #AA55 ; +#1FE Signature ;.MBR_SIGNATURE WORD #AA55 ; +#1FE Signature
ENDS ENDS
; ;
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 STRUCT _sMBR_PARTITION_RECORD
isActive BYTE 0 ; +#00 .isActive BYTE 0 ; +#00
Start_head BYTE 0 ; +#01 .Start_head BYTE 0 ; +#01
Start_sector BYTE 0 ; +#02 .Start_sector BYTE 0 ; +#02
Start_cylinder BYTE 0 ; +#03 .Start_cylinder BYTE 0 ; +#03
FS_ID BYTE 0 ; +#04 .FS_ID BYTE 0 ; +#04
End_head BYTE 0 ; +#05 .End_head BYTE 0 ; +#05
End_sector BYTE 0 ; +#06 .End_sector BYTE 0 ; +#06
End_cylinder BYTE 0 ; +#07 .End_cylinder BYTE 0 ; +#07
Start_LBA DWORD 0 ; +#08 .Start_LBA DWORD 0 ; +#08
Size_LBA DWORD 0 ; +#0C .Size_LBA DWORD 0 ; +#0C
ENDS
;
;
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
ENDS
;
;
STRUCT _sBOOT_SECTOR
.PARAMS _sBOOT_SECTOR_PARAMS
.BOOT_CODE BLOCK 384,0 ; +#3E boot loader's code
.PARTITION_TABLE _sMBR_PARTITION_TABLE
.MBR_SIGNATURE WORD #AA55 ; +#01FE
ENDS ENDS
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------