x86 On Acid

Abstract: To really get to know the inter-workings of a “common” computer at the machine level. One can make/do very cool things using assembly with DOS (FreeDOS of course!), a parallel port, a COM port and even the video display! This would prelude into building some devices (via parallel port or even PCI bus) and controlling them using DOS in ASM.

Why DOS (FreeDOS) and not GNU/Linux? We keep it simple. DOS doesn't have the overhead like GNU/Linux. That is to say, DOS will provide only the basics for one to start playing around with the hardware directly on the computer without any restrictions and if you make a mistake it will blow up in your face. (Hit reset and try again! :)

Why 80×86 and not ARM/PIC/Z80? Because the chances are higher to find a x86 box on the side of the road than a nice micro-controller. They are easily obtainable and (IMO) fun to program.

Why assembly and not C or something higher level? Psh… whats the fun in a higher level language? ASM will bring the programmer to a more “intimate” level to the hardware.

Equipment:

Some projects ideas after learning basic ASM:

Tutorials/Reference:

Document TODO: