I had various ZX-80 and ZX-81s but after they were obsolete. I learned to program in BBC BASIC (a structured basic with procedures and subroutines) on a BBC Model B. https://twitter.com/BrianLaRoux/status/1254716048651120640
When I went 16 bit I went to the Amiga 500 with the Motorola 68000 processor. I made my first system calls from AMOS Basic and then did some 68k assembly. Beautiful OS, chipset and instruction set.
AmigaOS was the first consumer operating system with pre-emptive multitasking (instead of cooperative multitasking). The Amiga had no memory protection so everything effectively ran multi-threaded in the same memory space. Passing pointers was fast though!
The full Amiga chipset included Fat Agnus (graphics), Gary (gate array) and Denise (sound). The cost of the custom chipset, the lack of memory protection and the incompetence of Commodore all helped to kill the Amiga. Long live the Amiga!
So it was hard not to see the pressure to go async rather than multi-threaded as a step back. The opposite direction was a revolution for operating systems.
But then memory protection was a revolution too, passing pointers was the wrong abstraction. The actor model, with threads under a scheduler like Go, is a good model. Pass ownership with objects. Doesn't meet every usecase for multithreaded but tames the hydra.
Some algorithms, like parellelising operations across a matrix, might get their performance advantage from shared memory. So you still want threading primitives.
There are a lot of advantages to having grown up in the 8 bit days when you could understand the whole computer.

Modern machines follow the same pattern, the Von Neumann model, and they're really just the same. But more of the same.
So all those mental abstractions my generation built as children for understanding the computer, out of sheer passion and joy, still hold today.

In a bigger and more dangerous world our joy and passion still lives.
The 68000 processor only used alternate memory bus cycles, so they interleaved Agnus to share the memory for graphics Direct Memory Access.

So there was one instruction you couldn't used which used both cycles: Test And Set. I knew a hacker on the demo scene called TAS.
The Amiga found a niche in cheap graphics production because it supported, out of the box, a doubled resolution by interleaving the horizontal. Which could be fed directly to video.

The Video Toaster, on top of the 68040 processor, was a tenth the price of similar gear.
Famously the CGI of Babylon Five was done with an array of Amigas and Video Toasters and the trademark "flare" of the Video Toaster is often in evidence in the early seasons.
Raspberry Pi, Mu, Microbit, Arduino, Scratch. The passion still burns. We didn't start the fire.
My name is on archives of Amiga public domain disks we swapped via bulletin boards with dial up modems.

Amos Sounds 1

Michael Foord

A disc of .ABK music files, and a player, for you to use in your programs.
APD331

Long before Open Source.

https://www.amigapd.com/amospdmusic.html
I even worked for BEEBUG in my year before going to University. BEEBUG produced monthly magazines with pages of listings to type into your Acorn machine.

RiscOS by Acorn Risc Machines was also a beautiful operating system and used by schools who I did phone support for.
That time working for BEEBUG was the early nineties Electronic Dance Music renaissance and when I started taking drugs, Ecstacy. Human Traffic charts that culture very well a little after as ecstacy and EDM spilled into the clubs.

Not an illustrious time for me.
I grew up in the days of the Hippy Convoy and the Battle of the Bean Field and I still love the Levellers. Music and movement.
Where is this thread going!

Ecclesiastes 7:8 The end of a matter is better than its beginning, and patience is better than pride.
You can follow @voidspace.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: