4 ms·
I first* learned programming on a 6502-based machine with 1K of RAM and no assembler or basic (Microtan 65, in case anyone remembers that.) Luckily the 6502's
by allertonm 16y ago
I first* learned programming on a 6502-based machine with 1K of RAM and no assembler or basic (Microtan 65, in case anyone remembers that.)
Luckily the 6502's instruction set is pretty easy to memorize, used to know it back to front. Only 56 base instructions and once you understand the way the addressing modes affect the opcode for LDA it's easy to work it out for the others.
Glad I don't have to do that anymore, but it was a great grounding for all the high-level stuff that came later.
(*Well, unless you count my dad's 31-step programmable TI calculator.)
- gecko 16y agoJust to be explicit: you mean you programmed it purely with opcodes, presumably compiling by hand a program you'd figured out earlier?
- allertonm 16y agoYes, I programmed it purely with opcodes. The machine was just running a very basic "monitor" that let you write instructions and data into memory in hex and then let you run them. At first the machine did not even have a cassette interface, so there was no way to save programs and you had to type them in every time. The machine came with some examples, like Conway's "Life". Given that the machine really only had about 256 bytes of usable program storage (half the 1k was used for video) this wasn't quite as bad as it sounds but still pretty tedious. Actually when I first got a cassette interface I still had to type the cassette loader in by hand to boot :( Eventually I got the rom expansion that included the cassette loader and an assembler. Obviously writing a program directly into memory in opcodes does involve some upfront thinking, but you'd be surprised how "REPL-like" the coding experience could be :)