On Sep 29, 2026, at 4:03 PM, Antonio Carlini
<a.carlini(a)ntlworld.com> wrote:
On 29/09/2026 20:18, Paul Koning wrote:
That's certainly a start but just the bare
beginning.
Very true.
I suspect that, unti lthe IBM/360, most machines
had word lengths not a power of two. For example, none of the DEC machines before the
PDP-11. Older IBM machines had assorted word sizes; CDC and Burroughs ditto.
I worked on a 1970s era Philips machine with 24 bits, and there were other minicomputer
with that word length (Modcomp?). Electrologica had 27 bit words.
I went to a (guest) lecture by Dijkstra once, where he mentioned semaphores and the X8,
so quite how I missed that one I just don't know!!
You can find the original papers about his invention of semaphores in the EWD archive at U
Texas. The oldest ones are in Dutch but I think they were translated. One mentions the
original name -- (railroad) signposts, which explains the P and V function names, based on
the Dutch words "pass" and "leave" -- passing the signpost at the
start of a railroad block, and leaving the block. I put much of this into the Wikipedia
article about semaphores.
The X8 used semaphores in the API of the I/O coprocessor CHARON, to guard the request
queues and to manage interrupt delivery. They are also used intensively in Dijkstra's
THE operating system, with "hardware semaphores" in device drivers to block
until an interrupt, and "software semaphores" to do mutual exclusion, task
switching, etc.
The underlying magic is an X8 instruction added to the base X1 set. There is the regular
add and subtract operations (add/sub memory to register) but also memory-update variants,
which add or subtract memory to the register but also atomically deliver the result to
memory as well.
paul