The Old New Thing
One day you woke up, finding yourself back in 1992. It would seem that the gypsy wife of the wizened old monk whose voodoo shop you smash up every day after school has cast a spell on you.
In the 1992 world, things are different, I can assure you. All the things we consider old were new back then (or hadn't even been invented!). What is Google? What is iPhone? What is Windows 95? The ancient 8086, 80286, 80386, and their kind roamed the Earth. The limitations of the processing power and storage back then has shaped a completely different world.
You decided to get a job in 1992 to feed yourself while you try to find your way back...
To quote The Old New Thing, a blog by Microsoft programmer Raymond Chen:
The original IBM PC came with 16KB of memory.
That's not a lot of space in which to squeeze an operating system, especially since you had to leave enough memory for the user to actually get work done. A product of its time, the MS-DOS kernel is written entirely in assembly language, pretty much standard procedure for programs of the era. It also meant that the code takes all sorts of crazy shortcuts to shave a few bytes here, a few bytes there, in order to squeeze into as little memory as possible. For example, one very common trick was to have jump into the middle of an instruction, knowing that the second half of the instruction, when reinterpreted as the start of an instruction, performs the operation you wanted.
This is the modern world:
Contemporary IBM PC clones come with 2GB of memory.
That's not a lot of space in which to squeeze an operating system, especially since you had to leave enough memory for the user to actually get work done. A product of its time, the Vista userspace components are written entirely in high level languages, pretty much standard procedure for programs of the era. It also means that the code takes all sorts of crazy abstractions to waste a few bytes here, a few bytes there, in order to be in accordance with modern development practices as much as possible. For example, one very common change is to replace data stores that used to be plain text files or compact binary files with XML files and databases, respectively, knowing that they perform the operation you wanted, just at a higher performance cost.
In this contest, you will explore the programming world of 1992 and hopefully learn something new. This contest is not algorithmic in the traditional sense, as most other contests are. If you want to try something different, then this contest is for you.
The problem setter this time is
.Problems
Problem | Points | AC Rate | Users |
---|---|---|---|
16 BIT S/W ONLY | 3 | 37.1% | 2876 |
A20 Gate | 5 | 31.8% | 284 |
Equivalent Addresses | 7 | 32.3% | 19 |
Executable Format | 10 | 28.3% | 22 |
Linked List | 20p | 6.3% | 31 |
Comments