Ah yes, reminds me of the video scanline interrupt programming on C64 that allowed me, by reformatting text characters on the fly on each endline interrupt, to create arbitrary graphics on the C64’s text mode screen… I used that in the software I was doing when working for a music software company when I was in college.
There was a great satisfaction when other C64 programmers would look at high res color graphics in the music program and go “how in the world did you do that?”.
What a damn fine processor. It’s not the first processor I learned to write assembly for, that would be the 6502. But the 68000 is the first one I loved writing assembly for.
8x32bit Data registers
9x32bit Address registers
Very sensible instruction set. A joy to write for. A processor that puts a smile on my face. I still occasionally dig out an Atari ST emulator and a copy of Devpac.
And yet what processor caught on? The 80286, 386, 486 and onward. An evil, evil processor.
My favorite, if a machine that retailed for as much as a Rolls Royce counts as a microprocessor, was the IBM 3145. Almost everything was programmable (you could read the switches, write the lightbulbs, etc.) yet it also had deliciously complicated hardware. For example, the result of instruction 1 was written during instruction 2, and checked during instruction 3 for a possible trap during instruction 4, whereupon there was enough backed-up state to reconstruct the environment of instruction 1 for retry! The retry mechanism was disabled during most diagnostics, so the bits in one of the backup registers did double duty by allowing fun features like invert B-register parity.
The 3145 had a variable cycle-length: 4½, 5½, or 6½ times 45 nanoseconds. The ½’s here may seem odd – a timing problem found late in development led to an exclusive-or gate right next to the quartz oscillator.
Although compatible at the application-program level, S370 models were radically different internally. IIRC, the 3145 was designed in Germany; I’ve often wondered whether “national character” found its way into some of the design.
There were only 8 address registers, A0 through A7 — unless maybe you’re counting the PC as another address register. But the PC wasn’t free for general use, of course.
I worked with second generation computers - the console lights and buttons were so that you could directly input binary data into a few registers and lower memory areas in order to “bootstrap” the computer. The lights were bits - on/off. The same thing was used if the program stopped to “debug” the state of the system.
I actually started on writing assembly language code on the IBM 360, but I ended writing a lot more code for the Interdata 7/32 and all of the processors that descended from it. I remember thinking that MVS was incredibly complicated, but I bet the iPhone has more lines of code in it now.
I actually wrote a fair amount of assembly language for the Apple II. I don’t know what I was thinking when I threw out my red book the last time I moved.
There isn’t a lot of demand for assembly language programmers now days. Even micro-controllers use code written in C.