What I would suggest for anyone interested in lower level programming to get a programmable graphical calculator and try some assembler programming. That way you don't need to get an obsolete computer, and it's dead useful at mathematics classes too... and it's portable. TI-86 is quite nice thing to have

Heck, now that I think of it I invented object oriented programming autonomously (in a way) when I divided my programs into modules that put out different things depending on input... I believe they would be called "methods" in Java, except that these methods would be just parts of a main method...
I think there was even a possibility to call other programs in during running another program... Not unlike Java classes.

Why do we even need anything else than assembler? Functions you say? Well WRITE those functions, at least you know what the program does and you're not just feeding attributes to readily given method of Math class that does some chewing and then spits out something that you just accept to be the correct answer...
