Saturday, 10 September 2016

Welcome to the Machine

There is an iOS game called Human Resource Machine that's a typical iOS puzzle game. Or at least that's what it tries to pass as: you play an employee at a dystopian company who has to follow the dumb rules in order to go up the food chain. The game got good reviews noting its cleverness, so when it was discounted to $1 I took the plunge.
What I quickly discovered, playing Human Resource Machine, is that no matter what the game tries to pass as, what you - the player - are actually doing in this game is CPU programming, Assembly/Assembler style. In order to solve puzzles you conduct activities that are 1 to 1 equivalents to loading CPU registers, adding CPU registers, and managing the special register that controls which memory byte the next CPU command will be read from.
And oh this brought back memories. Back in "my days", if you wanted to do anything properly sophisticated on your first gen accessible home personal computer (a Dragon 32, in my case), you had the choice of either the second incarnation of Microsoft Basic (slow and fairly limited!) or Assembly. Thus I got to play in Assembly and learned a lot about my Dragon's Motorola 6809 CPU in order to get there. I still remember some of the books I used: "The 6809 Cookbook", "Language of the Dragon".
I did some nifty things. I wrote my own Assembler compiler in Basic, programmed the graphics for my own Phoenix arcade game lookalike, and wrote a calculator program in Assembly.
Assembly had this charm to it. Programming in Assembly meant you have to think just like a CPU, and the direct nature of that had an effect on me. To program a CPU you need to think like a CPU, and you don't get to identify with a computer any better than that.
Perhaps that is why I'm not doing too badly in Human Resource Machine.

This rekindling of an old flame made me ponder about the things that drove me away from the world of Assembly programming and into the world of the mundane. Why, over the years, did I abandon the extraordinary that I used to have?
I think the answer is clear. High school, with its demands for grades, did not leave me with the time to experiment with my personal interests. My high school maths teacher, probably the worst teacher I ever had, pretty much decimated any interest I might have in maths. Then came Israel's mandatory army service, which disconnected me from the normal living world for several years. And then came the peculiar demands of Israeli universities at the time, which mandated deep maths studying - the subject high school burnt me at - in order to go deeply into programming. I chose a much less riskier subject.
In other words, the conventional education system killed any spark of independent thinking I might have had. That dystopian vision of the corporate world in Human Resource Machine is embodied in real life through me.

No comments: