mirror of
https://github.com/Tolik-Trek/Shared_Includes.git
synced 2026-06-15 09:01:33 +03:00
...
This commit is contained in:
parent
0e2bbfb73c
commit
e9bcf54a51
@ -1,36 +1,97 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
BOOT_SECTOR EQU #00
|
||||
.JMP EQU #00 ; BLOCK 3,0 BS_jmpBoot "JMP"
|
||||
.ID_NAME EQU #03 ; TEXT 8 BS_OEMName DOS NAME - DB "DSS_1.70"
|
||||
; Block Parameters BIOS
|
||||
.BytesPerSector EQU #0B ; WORD #200 BPB_BytsPerSec <09> §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||
.SectorsPerCluster EQU #0D ; BYTE 2 BPB_SecPerClus <09> §¬¥à ª« áâ¥à ¢ ᥪâ®à å
|
||||
.RESERVED_SECTORS EQU #0E ; WORD 1 BPB_RsvdSecCnt <09> §¬¥à á¨á⥬®© ®¡« á⨠(¢ª«îç ï íâ®â ᥪâ®à) RESERVE SECTORS
|
||||
.Number_of_FATs EQU #10 ; BYTE 2 BPB_NumFATs Š®«¨ç¥á⢮ â ¡«¨æ FAT
|
||||
.FilesInRootDIR EQU #11 ; WORD 112 BPB_RootEntCnt —¨á«® ®¯¨á ⥫¥© ä ©«®¢ ¢ ª®à¥¢®¬ ª â «®£¥ (¢ FAT32 - 0)
|
||||
.SectorsPerDrive EQU #13 ; WORD 1440 BPB_TotSec16 ޡ饥 ç¨á«® ᥪâ®à®¢ ¤¨áª¥ (¥á«¨ 0, â® à §¬¥à - ¢ .BPB_BIG_TOTAL_SECTORS)
|
||||
.DRIVE_TYPE EQU #15 ; BYTE #F0 BPB_Media ’¨¯ ãáâனáâ¢
|
||||
.SectorsPerFAT16 EQU #16 ; WORD 2 BPB_FATSz16 <09> §¬¥à ®¤®© FAT ¢ ᥪâ®à å (0 ¢ FAT32)
|
||||
.SectorsPerTrack EQU #18 ; WORD 9 BPB_SecPerTrk <09> §¬¥à ¤®à®¦ª¨ ¢ ᥪâ®à å
|
||||
.HEADS EQU #1A ; WORD 2 BPB_NumHeads ª®«¨ç¥á⢮ £®«®¢®ª
|
||||
.HIDDEN EQU #1C ; DWORD 0 BPB_HiddSec ª®«¨ç¥á⢮ ªàëâëå ᥪâ®à®¢
|
||||
.BPB_BIG_TOTAL_SECTORS_L EQU #20 ; WORD 0 BPB_TotSec32 BIG TOTAL SECTOR Low word
|
||||
.BPB_BIG_TOTAL_SECTORS_H EQU #22 ; WORD 0 BPB_TotSec32 BIG TOTAL SECTOR High word
|
||||
; FAT 12, FAT 16
|
||||
.BPB_PHISICAL_DRIVE_NUMBER EQU #24 ; BYTE #80 BS_DrvNum ”¨§¨ç¥áª¨© ®¬¥à ¤à ©¢
|
||||
.reserved_1 EQU #25 ; BYTE 0 BS_Reserved1 ‡ १¥à¢¨à®¢ ®
|
||||
.FAT.EXT_BOOT_REC_SIGNATURE EQU #26 ; BYTE #29 BS_BootSig ‘¨£ âãà - #29
|
||||
.FAT.SERIAL_NUMBER EQU #27 ; DWORD 0 BS_VolID VOLUME SERIAL NUMBER
|
||||
.FAT.LABEL EQU #2B ; TEXT 11 BS_VolLab Œ¥âª ¤¨áª
|
||||
.ID_FAT EQU #36 ; TEXT 8 BS_FilSysType FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters!
|
||||
; FAT 32
|
||||
.SectorsPerFAT32 EQU #24 ; DWORD 4 BPB_FATSz32 <09> §¬¥à ®¤®© FAT ¢ ᥪâ®à å
|
||||
.MainFATnumber EQU #28 ; WORD 0 BPB_ExtFlags <09>®¬¥à £« ¢®© â ¡«¨æë FAT
|
||||
.Version EQU #2A ; WORD 0 BPB_FSVer ‚¥àá¨ï FAT32 (®¡ëç® 0)
|
||||
.RootDirStartCluster EQU #2C ; DWORD 2 BPB_RootClus <09>¥à¢ë© ª« áâ¥à ª®à¥¢®£® ª â «®£ (®¡ëç® 2)
|
||||
.FSINFO_Sector EQU #30 ; WORD 1 BPB_FSInfo <09>®¬¥à ᥪâ®à áâàãªâãàë FSINFO (®¡ëç® 1)
|
||||
.CopyBootSector EQU #32 ; WORD 6 BPB_BkBootSec <09>®¬¥à ᥪâ®à - ª®¯¨¨ § £à㧮箣® (®¡ëç® 6)
|
||||
.reserved_block: EQU #34 ; BLOCK 12 BPB_Reserved ‡ १¥à¢¨à®¢ ®
|
||||
.FDD_Number EQU #40 ; BYTE 0 BS_DrvNum <09>®¬¥à ¤¨áª®¢®¤ ¤«ï äãªæ¨© BIOS
|
||||
.reserved_2: EQU #41 ; BYTE 0 BS_Reserved1 ‡ १¥à¢¨à®¢ ®
|
||||
.FAT32.EXT_BOOT_REC_SIGNATURE EQU #42 ; BYTE #29 BS_BootSig ‘¨£ âãà - #29
|
||||
.FAT32.SERIAL_NUMBER EQU #43 ; DWORD 0 BS_VolID VOLUME SERIAL NUMBER
|
||||
.FAT32.LABEL EQU #47 ; TEXT 11, BS_VolLab Œ¥âª ¤¨áª
|
||||
.ID_FAT32 EQU #52 ; TEXT 8, BS_FilSysType €¡¡à¥¢¨ âãà ä ©«®¢®© á¨á⥬ë
|
||||
; PC Loader
|
||||
.BOOT_CODE_FAT16 EQU #3E
|
||||
.BOOT_CODE_FAT32 EQU #5A
|
||||
; Partition table
|
||||
.PARTITION_TABLE EQU #1BE
|
||||
.PARTITION_TABLE.Size EQU #40
|
||||
.RECORD_SIZE EQU #10
|
||||
; Record
|
||||
.Partition.isActive EQU #00 ; BYTE 0
|
||||
.Partition.Start_head EQU #01 ; BYTE 0
|
||||
.Partition.Start_sector EQU #02 ; BYTE 0
|
||||
.Partition.Start_cylinder EQU #03 ; BYTE 0
|
||||
.Partition.FS_ID EQU #04 ; BYTE 0
|
||||
.Partition.End_head EQU #05 ; BYTE 0
|
||||
.Partition.End_sector EQU #06 ; BYTE 0
|
||||
.Partition.End_cylinder EQU #07 ; BYTE 0
|
||||
.Partition.Start_LBA EQU #08 ; DWORD 0
|
||||
.Partition.Size_LBA EQU #0C ; DWORD 0
|
||||
; Signature
|
||||
.MBR_SIGNATURE EQU #1FE; WORD #AA55
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
;
|
||||
//---------------------------------------------------------------------------
|
||||
STRUCT _sBOOT_SECTOR_PARAMS ; 62 bytes
|
||||
.JMP: BLOCK 3,0 ; +#00 "JMP"
|
||||
.ID_NAME: TEXT 8, {"DSS_1.7","0"} ; +#03 DOS NAME - DB "DSS_1.70"
|
||||
STRUCT _sBOOT_SECTOR_PARAMS
|
||||
.JMP: BLOCK 3,0 ; BS_jmpBoot +#00 "JMP"
|
||||
.ID_NAME: TEXT 8,{"DSS_1.7","0"} ; BS_OEMName +#03 DOS NAME - DB "DSS_1.70"
|
||||
; Block Parameters BIOS
|
||||
.BytesPerSector: WORD #200 ; +#0B <20> §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||
.SectorsPerCluster: BYTE 2 ; +#0D <20> §¬¥à ª« áâ¥à ¢ ᥪâ®à å
|
||||
.RESERVED_SECTORS: WORD 1 ; +#0E <20> §¬¥à á¨á⥬®© ®¡« á⨠(¢ª«îç ï íâ®â ᥪâ®à) RESERVE SECTORS
|
||||
.Number_of_FATs: BYTE 2 ; +#10 Š®«¨ç¥á⢮ â ¡«¨æ FAT
|
||||
.FilesInRootDIR: WORD 112 ; +#11 —¨á«® ®¯¨á ⥫¥© ä ©«®¢ ¢ ª®à¥¢®¬ ª â «®£¥ (¢ FAT32 - 0)
|
||||
.SectorsPerDrive: WORD 1440 ; +#13 ޡ饥 ç¨á«® ᥪâ®à®¢ ¤¨áª¥ (¥á«¨ 0, â® à §¬¥à - ¢ .BPB_BIG_TOTAL_SECTORS)
|
||||
.DRIVE_TYPE: BYTE #F0 ; +#15 ’¨¯ ãáâனáâ¢
|
||||
.SectorsPerFAT16: WORD 2 ; +#16 <20> §¬¥à ®¤®© FAT ¢ ᥪâ®à å (0 ¢ FAT32)
|
||||
.SectorsPerTrack: WORD 9 ; +#18 <20> §¬¥à ¤®à®¦ª¨ ¢ ᥪâ®à å
|
||||
.HEADS: WORD 2 ; +#1A ª®«¨ç¥á⢮ £®«®¢®ª
|
||||
.HIDDEN: DWORD 0 ; +#1C ª®«¨ç¥á⢮ ªàëâëå ᥪâ®à®¢
|
||||
.BPB_BIG_TOTAL_SECTORS_L: WORD 0 ; +#20 BIG TOTAL SECTOR Low word
|
||||
.BPB_BIG_TOTAL_SECTORS_H: WORD 0 ; +#22 BIG TOTAL SECTOR High word
|
||||
.BytesPerSector: WORD #200 ; BPB_BytsPerSec +#0B <20> §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||
.SectorsPerCluster: BYTE 2 ; BPB_SecPerClus +#0D <20> §¬¥à ª« áâ¥à ¢ ᥪâ®à å
|
||||
.RESERVED_SECTORS: WORD 1 ; BPB_RsvdSecCnt +#0E <20> §¬¥à á¨á⥬®© ®¡« á⨠(¢ª«îç ï íâ®â ᥪâ®à) RESERVE SECTORS
|
||||
.Number_of_FATs: BYTE 2 ; BPB_NumFATs +#10 Š®«¨ç¥á⢮ â ¡«¨æ FAT
|
||||
.FilesInRootDIR: WORD 112 ; BPB_RootEntCnt +#11 —¨á«® ®¯¨á ⥫¥© ä ©«®¢ ¢ ª®à¥¢®¬ ª â «®£¥ (¢ FAT32 - 0)
|
||||
.SectorsPerDrive: WORD 1440 ; BPB_TotSec16 +#13 ޡ饥 ç¨á«® ᥪâ®à®¢ ¤¨áª¥ (¥á«¨ 0, â® à §¬¥à - ¢ .BPB_BIG_TOTAL_SECTORS)
|
||||
.DRIVE_TYPE: BYTE #F0 ; BPB_Media +#15 ’¨¯ ãáâனáâ¢
|
||||
.SectorsPerFAT16: WORD 2 ; BPB_FATSz16 +#16 <20> §¬¥à ®¤®© FAT ¢ ᥪâ®à å (0 ¢ FAT32)
|
||||
.SectorsPerTrack: WORD 9 ; BPB_SecPerTrk +#18 <20> §¬¥à ¤®à®¦ª¨ ¢ ᥪâ®à å
|
||||
.HEADS: WORD 2 ; BPB_NumHeads +#1A ª®«¨ç¥á⢮ £®«®¢®ª
|
||||
.HIDDEN: DWORD 0 ; BPB_HiddSec +#1C ª®«¨ç¥á⢮ ªàëâëå ᥪâ®à®¢
|
||||
.BPB_BIG_TOTAL_SECTORS_L: WORD 0 ; BPB_TotSec32 +#20 BIG TOTAL SECTOR Low word
|
||||
.BPB_BIG_TOTAL_SECTORS_H: WORD 0 ; BPB_TotSec32 +#22 BIG TOTAL SECTOR High word
|
||||
; FAT 12-16
|
||||
.BPB_PHISICAL_DRIVE_NUMBER: BYTE #80 ; +#24 ”¨§¨ç¥áª¨© ®¬¥à ¤à ©¢
|
||||
.reserved: BYTE 0 ; +#25 ‡ १¥à¢¨à®¢ ®
|
||||
.BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; +#26 ‘¨£ âãà - #29
|
||||
.BPB_SERIAL_NUMBER: DWORD 0 ; +#27 VOLUME SERIAL NUMBER
|
||||
.BPB_LABEL: TEXT 11, {"NO NAME"," "} ; +#2B Œ¥âª ¤¨áª
|
||||
.ID_FAT: TEXT 8, {"FAT16"," "} ; +#36 FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters!
|
||||
ENDS
|
||||
;.BOOT_CODE BLOCK 448,0 ; +#3E boot loader's code
|
||||
;.MBR_PARTITION_TABLE BLOCK 4*16 ; +#1BE table = 4x16 bytes
|
||||
;.MBR_SIGNATURE WORD #AA55 ; +#1FE Signature
|
||||
.BPB_PHISICAL_DRIVE_NUMBER: BYTE #80 ; BS_DrvNum +#24 ”¨§¨ç¥áª¨© ®¬¥à ¤à ©¢
|
||||
.reserved: BYTE 0 ; BS_Reserved1 +#25 ‡ १¥à¢¨à®¢ ®
|
||||
.BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; BS_BootSig +#26 ‘¨£ âãà - #29
|
||||
.BPB_SERIAL_NUMBER: DWORD 0 ; BS_VolID +#27 VOLUME SERIAL NUMBER
|
||||
.BPB_LABEL: TEXT 11,{"NO NAME"," "}; BS_VolLab +#2B Œ¥âª ¤¨áª
|
||||
.ID_FAT: TEXT 8,{"FAT16"," "} ; BS_FilSysType +#36 FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters!
|
||||
ENDS ;
|
||||
;
|
||||
|
||||
; FAT 32
|
||||
STRUCT _sBOOT_SECTOR_PARAMS_FAT32
|
||||
.skip BLOCK #24,0
|
||||
.SectorsPerFAT32: DWORD 4 ; +#24 <20> §¬¥à ®¤®© FAT ¢ ᥪâ®à å
|
||||
.MainFATnumber WORD 0 ; +#28 <20>®¬¥à £« ¢®© â ¡«¨æë FAT
|
||||
.Version WORD 0 ; +#2A ‚¥àá¨ï FAT32 (®¡ëç® 0)
|
||||
@ -42,9 +103,9 @@
|
||||
.reserved: BYTE 0 ; +#41 ‡ १¥à¢¨à®¢ ®
|
||||
.BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; +#42 ‘¨£ âãà - #29
|
||||
.BPB_SERIAL_NUMBER: DWORD 0 ; +#43 VOLUME SERIAL NUMBER
|
||||
.BPB_LABEL: TEXT 11, {"NO NAME"," "} ; +#47 Œ¥âª ¤¨áª
|
||||
.ID_FAT: TEXT 8, {"FAT16"," "} ; +#52 €¡¡à¥¢¨ âãà ä ©«®¢®© á¨á⥬ë
|
||||
ENDS
|
||||
.BPB_LABEL: TEXT 11,{"NO NAME"," "} ; +#47 Œ¥âª ¤¨áª
|
||||
.ID_FAT: TEXT 8,{"FAT16"," "} ; +#52 €¡¡à¥¢¨ âãà ä ©«®¢®© á¨á⥬ë
|
||||
ENDS ; +#5A
|
||||
;
|
||||
|
||||
;
|
||||
@ -75,10 +136,12 @@
|
||||
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
|
||||
.PARTITION_TABLE: _sMBR_PARTITION_TABLE ; +#1BE table = 4x16 bytes
|
||||
.MBR_SIGNATURE: WORD #AA55 ; +#1FE Signature
|
||||
ENDS
|
||||
;
|
||||
|
||||
;
|
||||
STRUCT _sFAT_DIRECTORY_RECORD
|
||||
.NAME: TEXT 8,{". "," "} ;+ #00 +00 NAME
|
||||
.EXT: TEXT 3,{" "," "} ;+ #08 +08 EXT
|
||||
|
||||
Loading…
Reference in New Issue
Block a user