Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Booting
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Notes == {{Notelist}} {{reflist|group="nb"|refs= <ref group="nb" name="NB_Magic_AA55">The signature at offset <code>+1FEh</code> in boot sectors is <code>55h AAh</code>, that is <code>55h</code> at offset <code>+1FEh</code> and <code>AAh</code> at offset <code>+1FFh</code>. Since [[little-endian]] representation must be assumed in the context of [[IBM PC]] compatible machines, this can be written as 16-bit word <code>AA55h</code> in programs for [[x86]] processors (note the swapped order), whereas it would have to be written as <code>55AAh</code> in programs for other CPU architectures using a [[big-endian]] representation. Since this has been mixed up numerous times in books and even in original Microsoft reference documents,<!-- one example of many: http://technet.microsoft.com/en-us/library/cc977219.aspx as of 2012-01-14 --> this article uses the offset-based byte-wise on-disk representation to avoid any possible misinterpretation.</ref> <ref group="nb" name="NB_PC_DOS_Contiguous_files">The [[PC DOS 5.0]] manual incorrectly states that the system files no longer need to be contiguous. However, for the boot process to work the system files still need to occupy the first two directory entries and the first three sectors of [[IBMBIO.COM]] still need to be stored contiguously. [[SYS (DOS command)|SYS]] continues to take care of these requirements.<!-- See Chappell "DOS Internals" for further details --></ref> <ref group="nb" name="NB_DR-DOS_File-size">There is one exception to the rule that [[DR-DOS]] [[Volume boot record|VBR]]s will load the whole [[IBMBIO.COM]] file into memory: If the IBMBIO.COM file is larger than some 29 KB, trying to load the whole file into memory would result in the boot loader to [[#Paul_1997_ODA3|overwrite]] the [[call stack|stack]] and [[Relocation (computing)|relocated]] [[Disk Parameter Table]] (DPT/FDPB).{{citeref|Paul|1997|A}} Therefore, a [[DR-DOS 7.07]] VBR would only load the first 29 KB of the file into memory, relying on another loader embedded into the first part of IBMBIO.COM to check for this condition and load the remainder of the file into memory by itself if necessary. This does not cause compatibility problems, as IBMBIO.COM's size never exceeded this limit in previous versions without this loader.{{citeref|Paul|1997|A}} Combined with a dual entry structure this also allows the system to be loaded by a [[PC DOS]] VBR, which would load only the first three sectors of the file into memory.</ref> <ref group="nb" name="NB_DR-DOS_707">As an example, while the extended functionality of DR-DOS [[master boot record|MBR]]s and [[volume boot record|boot sector]]s compared to their [[MS-DOS]]/[[PC DOS]] counterparts could still be achieved utilizing conventional [[code optimization]] techniques in [[assembly language]] up to [[DR-DOS 7.05|7.05]]<!-- yes, 7.05, not 7.06, as 7.06 was designed to be compatible with Microsoft's MS-DOS 7.10 boot sector -->, for the addition of [[logical block addressing|LBA]], [[FAT32]] and [[NEWLDR|LOADER]] support the [[DR-DOS 7.07|7.07]] sectors had to resort to [[self-modifying code]], [[opcode]]-level programming in [[machine language]], controlled utilization of (documented) [[side effect (computer science)|side effect]]s, multi-level data/code [[instruction overlapping|overlapping]] and algorithmic [[fold (function)|fold]]ing techniques to squeeze everything into a single physical sector, as it was a requirement for [[backward compatibility|backward]]- and cross-compatibility with other operating systems in [[multi-boot]] and [[chain load]] scenarios.</ref> }}
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Booting
(section)
Add topic