System16 Info Block
This is the System16 Info Block. It's
content is mostly filled in by System16 at bootup. The values here are for system use, but
can be usefull for some appliciations aswell... This table is located IN the code-segment
of System16. System16 will always be loaded at 500h. It starts with 100h zeros. So to get
for example the physical address of the KeyboardArea, this assemblercode could retrieve
it:
mov eax, gs:[600h+74]
Provided that GS is loaded with the descriptor that covers memory 00000000 to 4Gig(As it
always should under V2_OS).
Offsets are given in decimal values here:
Ofs | Size | Description |
4 | 1 | System16Sectors |
This value is used by Boot.com to find out how many sectors to load into memory before passing control to System16. Multiply this value by 512 to get the size of System16 in bytes. | ||
5 | 1 | System32Sectors |
This value is used by System16 to find out how many sectors to load into memory before passing control to System32. Multiply this value by 512 to get the size of System32 in bytes. | ||
6 | 4 | System16 Addr |
This
value is the physical Base address of System16's code Descriptor. This value is currenly
fixed to 500h Note that System16's code starts with 100h bytes of zero's. |
||
10 | 4 | System32 Addr |
This value is the physical Base address of System32's code Descriptor. It starts right after System16's code. Note that System32 also starts with 100h bytes of zero's. | ||
14 | 2 | The RealMode Portal Segment |
16 | 2 | The RealMode Portal Offset |
18 | 2 | The IDT Length (in Bytes) |
20 | 4 | The IDT physical base address |
24 | 2 | The GDT Length (in Bytes) |
26 | 4 | The GDT physical base address |
30 | 4 | The physical base address of the 'Shared Stack-Space' |
34 | 4 | Size in bytes of the 'Shared Stack-Space' |
38 | 2 | System16Function Offset |
40 | 4 | System16Function's Return Address |
44 | 4 | Real_EAX |
48 | 4 | Real_EBX |
52 | 4 | Real_ECX |
56 | 4 | Real_EDX |
60 | 4 | Real_ESI |
64 | 4 | Real_EDI |
68 | 2 | Real_DS |
70 | 2 | Real_ES |
72 | 2 | Real_FS |
74 | 4 | The physical base address of the 'Keyboard Area' More... |
78 | 2 | Bootup GDT |
80 | 2 | GDT_Entries |
82 | 2 | Diskbuffer Segment |
84 | 4 | Diskbuffer Size in bytes |
88 | 2 | Number of Fixed Disks |
90 | 2 | Offset to the DiskInfoBlock (Relative to System16's Base Address) More... |
92 | 2 | Reserved |
94 | 1 | (BIOS)Drive number of the disk that V2_OS Booted from |
95 | 4 | Address of the CMOS data-image(Copied from NVRam by System16 at bootup) |
99 | 1 | Reserved |
100 | 4 | Found_Cylinder |
104 | 4 | Found_Head |
108 | 4 | Found_Sector |
112 | 2 | Offset to the PartitionList(Relative to System16's Base Address) More... |
114 | 2 | Number of floppydrives present in the system |
116 | 4 | ModList Address More... |
120 | 4 | ModList Size in bytes |
124 | 4 | ServerList Address More... |
128 | 4 | ServerList Size in Bytes |
128 | ... | Reserved |