|
PROJECT: SINGLIX Operating System Issue: 1
Revision: 13 Date: 17/05/2009 OWNER: ERDOĐAN TAN / Istanbul / Turkiye |
|||||
|
|
|
|
|
|
|
|
BOOT SECTOR PARAMETERS of SINGLIX FS1, FS2 file systems |
|||||
|
|
|
|
|
|
|
|
Offset |
Item |
DATA |
Type |
Size |
Description of Item |
|
0 |
Jmp to Offset 65 |
EB3Fh |
Word |
2 byte |
“Jump to boot code” / OPCODE |
|
2 |
Nop |
90h |
Byte |
1 byte |
Reserved (90h for this FS version) |
|
3 |
FileSystem ID |
‘FS’ |
Char |
2 byte |
SINGLIX ATA(PI) File System Identifier |
|
5 |
Terminator |
0 |
Byte |
1 byte |
Zero String Terminator |
|
6 |
Bytes Per Sector |
XXXXh |
Word |
2 byte |
FS1 = 512 (ATA), FS2 = 2048 (ATAPI) |
|
8 |
Media Attributes |
XXh |
Byte |
1 byte |
Media Attributes Byte |
|
9 |
Partition ID |
XXh |
Byte |
1 byte |
SINGLIX, FS Hard Disk = A1h, FD = 0 |
|
10 |
FS Version Major |
XXh |
Byte |
1 byte |
File System Version – Major = 1 |
|
11 |
FS Version Minor |
XXh |
Byte |
1 byte |
File System Ver. – Minor/Revision = 0 |
|
12 |
Beginning Sector |
XXXXXXXXh |
Dword |
4 byte |
Volume Beginning (Boot) Sector (LBA) |
|
16 |
Volume Size |
XXXXXXXXh |
Dword |
4 byte |
Volume/Partition Size in Sectors |
|
20 |
Startup File Addr. |
XXXXXXXXh |
Dword |
4 byte |
OS Startup File/Code/Prog. Location |
|
24 |
MAT Location |
XXXXXXXXh |
Dword |
4 byte |
Master Allocation Table Location |
|
28 |
Root Dir Location |
XXXXXXXXh |
Dword |
4 byte |
Root Directory Descriptor Address |
|
32 |
Registry File Addr. |
XXXXXXXXh |
Dword |
4 byte |
System Config. File Descriptor Location |
|
36 |
Swap File Addr. |
XXXXXXXXh |
Dword |
4 byte |
Swap File/Space Descriptor Location |
|
40 |
Undelete Dir Addr. |
XXXXXXXXh |
Dword |
4 byte |
Undelete/Restore Directory Location |
|
44 |
Reserved (Drive) |
XXh |
Byte |
1 byte |
Reserved (for Drive Number) |
|
45 |
Reserved (LBA yes) |
01h |
Byte |
1 byte |
Reserved (for LBA mode yes/no sign) |
|
|
Magic Word (CHS) |
01A1h |
Word |
2 byte |
TR-SINGLIX Boot Code Sign (CHS params) |
|
48 |
Operating System |
16 chars |
Char |
16 byte |
‘TR-SINGLIX v1.0b’ etc. |
|
64 |
Terminator |
0 |
Byte |
1 byte |
Zero String Terminator |
|
65 |
Boot Code |
445 bytes |
Byte |
445 byte |
OS Boot (Startup File Loader) Code |
|
510 |
BootSign |
AA55h |
Word |
2 byte |
Boot Sector Identifier |
|
NOTE: Volume Beginning Sector is LBA
address of Boot Sector. Startup File/Code Address, MAT
Location, Root Dir. Descriptor Location, Registry File Location, Swap File
Descriptor Location are offset addresses (from beginning of the fs/volume,
boot sector); these are NOT absolute addresses. Master Allocation Table keep location and
free sector counts of the Volume and the Disk Allocation Table. DAT pointers with
90h values show free sectors, others show allocated sectors but ZERO means
invalid DAT. Some pointer
values carry special meanings like File Description Table, Directory
Description Table, Root Dir Descriptor, Master Alloc. Table, Disk Alloc. Table, Boot
Sector, Bad Sector, Deleted Data Sector, Registry File, Swap File etc.) Do not
forget: 1 byte DAT pointer shows 1 sector or 512 bytes data allocation. Root Directory and sub directories do not
include OS Startup File, that file (with maximum 512 K size) is a boot block file,
which initializes Operating System. Also, root directory and sub directories
do not include Registry (System Config.) File, that file is a boot block file
which reserves OS configuration like GUI settings etc. Also, swap file
(instead of a separate swap partition/volume) is for memory extension and
will not appear in root or subdirectories. Shortly, we can say that: we can
not make, delete boot (super) block files in directory tree. (File System
formatting programs responsible for that.) Remember that: in SINGLIX FS, directory and
file data is just after their/its description table sector. (For example: If the first FDT Address is
00006E00h, file data starts from sector 00006E01h.)
This FS project is for INTEL x86 CPU models, but compatible for
other CPU models. (Media Attributes Byte, FS Version Word, OS BUILD Number
Word can be used as CPU, Software Architecture Identifier.)
Media Attributes Byte:
Bit 0 => If Bit 0 is ‘0’, file system is read only.
(CD-ROM etc.) WRITE flag Bit 1 => If Bit 1 is ‘1’, file system is on
removable/mountable/unmountable media. REMOVABLE flag Bit 2 to Bit 7 => Reserved. Must be ‘0’ for This FS
Version. (These BITs may be assigned in future.)
FS on ATAPI CD-ROM =
xxxxxx10b = 2h FS on ATA Hard/Fixed Disk = xxxxxx01b = 1h FS on USB Virtual/Flash Disk = xxxxxx11b = 3h
|
|||||