Footnotes

0. Punjabi

My mum said "How is this a problem? You fix problems. That's what you do. Just do that. Don't worry. Everything will be OK!"

But in Punjabi, the above is a figurative translation. If I am literal, she said something along the lines of "This how a difficulty is for you? This, a difficulty, is not. This, for you, is easy. This, you can do. Worry, do not do. Everything right will become."

Can you see how my mum sounds like Yoda? She would of course say that Yoda sounds like her, and she would be right.

1. Macrofire

I no longer remember what I used before Macrofire, but whatever it was, I didn't think it would be up to the job. Macrofire was new and shiny, and much faster than alternatives. It was also cheaper. I've never cheaped out on tools since.

2. Assembly vs. Assembler

You will notice that sometimes I say "assembly" and sometimes "assembler", which is it?

I mostly use "assembler", nowadays, which can be confusing, because it's wrong and also because that's what we call the program that turns human-readable symbolic code into machine-readable binary code.

In 1984, I never used "assembler" except in this context. I became lazier later.

I use "assembly code" when referring to what I as a programmer write and "assembly language" when referring to its grammar and syntax.

3. Assembly Language and the MSB/LSB operators on 8-bit machines

Say you have a 16 bit value that is the address of the screen. I would use hexadecimal numbers for hardware addresses, so on the Spectrum, the screen address would be 4000. This is 16,384 in decimal.

Some assemblers on the Spectrum used the ampersand prefix to denote a hex number. For 6502, you'd use the hash character, or as we used to all it back then, the number sign.

On the Z80, you could take the address of the screen and stick it straight into a pair of 8-bit registers, that in tandem, act as a single 16-bit register.

For example: