TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Unidentified PC DOS 1.1 Boot Sector Junk Identified

184 pointsby kencauseyover 3 years ago

8 comments

TazeTSchnitzelover 3 years ago
Uninitialised memory in development tools can have very interesting results! There&#x27;s a Game Boy Color game that contained HTML from a porn site in an uninitialised region: <a href="https:&#x2F;&#x2F;tcrf.net&#x2F;DynaMike" rel="nofollow">https:&#x2F;&#x2F;tcrf.net&#x2F;DynaMike</a>
评论 #29846803 未加载
评论 #29849220 未加载
Stratoscopeover 3 years ago
I had my own misadventure with uninitialized memory in the late 1970s when I was working at Tymshare. I was maintaining the assembler and linker for one of our machines (I think it was the PDP-10 but could have been the Sigma 7).<p>The linker had a bad habit of leaving unused memory uninitialized. Every time you linked a program, the binary would be different. Functionally the same, but they wouldn&#x27;t compare byte for byte. So my manager asked me to make sure the linker zeroed out all unused memory.<p>After linking a program, the linker printed a message something like this:<p><pre><code> 8412 bytes used 439 bytes free </code></pre> The linker was a mess of spaghetti assembly code, and it was a real pain to find and fix all of the places where it failed to clear memory.<p>My manager knew what a hassle this task was, and he was fairly chill, so just for fun I added a temporary message meant for his eyes only:<p><pre><code> 8412 bytes used 439 bytes free and it&#x27;s pretty fucking clean </code></pre> I figured he would get a laugh out of this and then I&#x27;d remove it.<p>Unfortunately he wasn&#x27;t the first to see the message. <i>His</i> manager was giving a demo to a customer and <i>they</i> saw the message. Oops.<p>Later we wanted to add a &quot;weak external&quot; feature to the assembler and linker, something like the &quot;weak reference&quot; that a few modern languages have. If the external was missing, then instead of failing the link step, it would leave a zero that you would check at runtime.<p>The regular external directive was called EXTERN, and the tradition was for these names to be very short. I thought of calling it WEXTERN but then decided to call the feature a &quot;secondary external&quot;, so the directive was SEXTERN!
jasonpeacockover 3 years ago
I love this. This is what makes the internet the beautiful, amazing place that it is - anyone can publish and you get these highly specialized, well-written, informative articles on esoteric topics.
评论 #29844455 未加载
anyfooover 3 years ago
I will recount one mystery that I personally wondered about for decades, and that coincidentally the author of this article might have shed most light on:<p>The 386 was the first x86 processor to introduce four &quot;Control Registers&quot;, CR0-CR3. The first one, CR0, was technically already introduced with the 286, but then still named &quot;Machine Status Word&quot; and manipulated with its own set of different , explicit instructions (that still survive to this day).<p>Now, if you look at Intel&#x27;s documentation of the 386, or any later CPU in the line--including today&#x27;s Intel CPUs in Laptops, Desktops, and Servers--you will see that the second of those registers, CR1, is entirely &quot;reserved&quot;. No single bit in it can be accessed, neither reading or writing.<p>This is bizarre not only because CR1 was introduced by the 386 along with CR2 and CR3 (which are defined and common), but also because the successor, the 486, introduced a <i>new</i> Control Register, CR4, instead of starting to use reserved bits in CR1. This is despite CR4 sharing its characteristics with CR0 (and unlike e.g. CR2): It&#x27;s mostly a bit field for global processor state. So while you could have assumed that CR1 existed as planned &quot;overflow&quot; to add new control bits to once CR0 became full, the seemingly simple addition of CR4 in the immediate successor goes against that theory.<p>Decades ago, I even wrote to the 386&#x27;s chief architect to try to settle that question... he must have not understood my question, because he just replied that according to Intel documentation, that register is &quot;reserved&quot;.<p>But incidentally, a while ago I talked about that mystery with the author of this article, and received the most plausible theory so far: It turns out that an early pre-release document shows that the 386 was originally planned to contain an on-chip cache. Evidently, that part of the plan must have been scrapped, because the 386 shipped without an on-chip cache, which was only added with the 486 (maybe they ran into problems with implementing a cache controller, or maybe at the time so much on-chip SRAM would have made for a prohibitive price point).<p>It is therefore not unlikely that CR1 was once meant, and in prototypes maybe even did, control the cache. Once that cache was removed, CR1 was just made &quot;reserved&quot;, and not repurposed in the 486 and later CPUs out of an abundance of caution for compatibility: Accessing CR1 reliably causes an Undefined Opcode trap, and maybe some important software at the time relied on that in a bad way.
评论 #29849403 未加载
userbinatorover 3 years ago
<i>The first person to make this discovery (as far as we can tell) was Daniel B. Sedory aka The Starman, whose illustrated PC DOS 1.1 boot sector page is much nicer than anything I could put together.</i><p>I highly recommend his site too --- there&#x27;s plenty of boot-sector analyses there, explanations of the PC boot process, and other low-level information presented in fast-loading, script-free ad-free HTML from someone whose goal isn&#x27;t to make a quick $$$, but rather to share information freely. In other words, a great resource of the &quot;document web&quot;.<p>As for this article, it also reminds me of &quot;junk DNA&quot; sequences, which could have similar relevance to biological historians.
评论 #29849964 未加载
iforgotmypassover 3 years ago
Perhaps someone could help out solve my 20 year old mystery? When I was a kid, I had briefly access to a computer. My memory might be mistaken on the details, but I just can&#x27;t find on Google what kind of computer it was. It had 5 inch floppies, I am pretty sure that games on it only used four colors (cyan, magenta, white, black). I think it had joystick similar to Atari&#x27;s. It had Bubble Bobble game.<p>Edit: Photos of Commodore computers look really close to what I remember, but not exactly. Also, Latvia (where I live) just recently had regained independece from USSR and it was a time when the market was flooded with clones for everything. E.g. instead of NES kids had famiclones like Zhiliton, UFO or in my case, I think it was Dendy.<p>Edit: Floppy reader was in-built, not external, as far as I remember.<p>Edit: Sorry, more like 30-year mystery. Somewhere around beginning of 90s.<p>Edit: I think it also had game Alley Cat.<p>Edit: Thank you everyone for chiming in! This inspired me and gave extra keywords for further investigation and narrowing down the exact model &#x2F; make. Gonna continue searching on Sunday.
评论 #29844955 未加载
评论 #29844945 未加载
评论 #29845009 未加载
评论 #29847989 未加载
评论 #29844915 未加载
评论 #29845339 未加载
评论 #29845075 未加载
评论 #29844913 未加载
评论 #29849345 未加载
评论 #29844876 未加载
jonny_ehover 3 years ago
Is PC DOS the predecessor to MS-DOS, made strictly for IBM? How many versions were there and when did Microsoft change it?
评论 #29845187 未加载
评论 #29845459 未加载
评论 #29845166 未加载
samusover 3 years ago
It sounds eerily like geneticists trying to decipher where a gene or a piece of &quot;junk&quot; DNA came from and what they do.