Chris Williams's Avatar

Chris Williams

@diodesign.org

Work: https://cloud.google.com/ Personal: https://diodesign.org/ Wear sunscreen.

434
Followers
223
Following
57
Posts
28.07.2023
Joined
Posts Following

Latest posts by Chris Williams @diodesign.org

Textbook cover in the style of a Dabs Press publication, which reads:

Mike Ginns
RISC-V
Assembly Language
The Complete Programming Course

New architecture edition covers RV32I & RV64I
Dabs Press

(With a wireframe drawing of someone's arm as an illustration)

Textbook cover in the style of a Dabs Press publication, which reads: Mike Ginns RISC-V Assembly Language The Complete Programming Course New architecture edition covers RV32I & RV64I Dabs Press (With a wireframe drawing of someone's arm as an illustration)

Nice. With apologies to Mike Ginns who wrote this sterling book that taught me Arm assembly language...

www.computinghistory.org.uk/det/12421/Ar...

...a future one about RISC-V might look like:

09.03.2026 03:26 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Ha, yes. If I had time, I would. Read a ton of Usborne books like this growing up

08.03.2026 22:26 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

It's in the Internet Archive, for those who are curious.

archive.org/details/mach...

08.03.2026 20:39 ๐Ÿ‘ 6 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I remember that article and issue! I thought at the time, wow, that guy has a sweet gig compiling magazine CDs and must have a sweet setup to do so.

I spent months roaming those CDs, so thanks!

18.02.2026 19:09 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

That's a serious what the... from me

10.02.2026 00:59 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Super-in-depth look at the 6502 assembly in a NES game, with lessons for today's code in terms of performance optimization decisions and missteps

09.02.2026 04:10 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
GitHub - maxpoletaev/nupsx: Experimental PlayStation 1 emulator Experimental PlayStation 1 emulator. Contribute to maxpoletaev/nupsx development by creating an account on GitHub.

A cool demonstration of Zig as a language IMO: a PlayStation 1 emulator with built-in dissembler and debug. It emulates the 32-bit MIPS 3000A-based CPU core as well as the Sony GPU, GTE, SPU, and more

Readable code, too, and links to system reference info

github.com/maxpoletaev/...

09.02.2026 04:07 ๐Ÿ‘ 2 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

My doctor hates this but I 100% am all for it

07.02.2026 04:12 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

New year, new account, same great open source energy. We are ready to see what you ship ๐Ÿšข

08.01.2026 17:59 ๐Ÿ‘ 25 ๐Ÿ” 4 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

New year's resolution, engage with open source developers on our new Bluesky account. โœจ

06.01.2026 21:54 ๐Ÿ‘ 291 ๐Ÿ” 30 ๐Ÿ’ฌ 29 ๐Ÿ“Œ 16

This is going to date me, but in college I studied 90 to 45nm processes for my EE degree. I asked a professor about sub-45 and his response was: "oh, that's just dark magic."

I dunno how he'd describe sub-10nm. Anyway, if you don't know how modern chips are made, check this out

02.01.2026 01:04 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Stewart Douglas Cheifet (1938 - 2025) - Computer Chronicles Revisited Computer Chronicles Revisited pays tribute to the creator, executive producer, and host of

More detailed obit: computerchronicles.blog/post/stewart...

31.12.2025 20:18 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
A frame from the start of a 1980s Computer Chronicles episode, with host Stewart Cheifet sitting in front of a background featuring the show's logo: the computer chronicles

A frame from the start of a 1980s Computer Chronicles episode, with host Stewart Cheifet sitting in front of a background featuring the show's logo: the computer chronicles

RIP Stewart Cheifet. who died December 28. He was 87.

I have no doubt his work creating and hosting the Computer Chronicles from 1984 to 2002 inspired many future journalists and engineers. Certainly was for me.

obits.goldsteinsfuneral.com/stewart-chei...

en.wikipedia.org/wiki/Compute...

31.12.2025 18:39 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
UNIX V4 tape successfully recovered : Crucial early evolutionary step found, imaged, and ... amazingly ... works

UNIX V4 tape successfully recovered: First ever version of UNIX written in C is running again

www.theregister.com/2025/12/23/u...

Crucial early evolutionary step found, imaged, and ... amazingly ... works

<- by me on @theregister.com

23.12.2025 12:23 ๐Ÿ‘ 23 ๐Ÿ” 7 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 1
From Acorn to ARM with Professor Steve Furber MBE
From Acorn to ARM with Professor Steve Furber MBE YouTube video by The Retro Collective

This was pretty interesting, hearing how the small team behind the 8-bit BBC Acorn computer went from specifying ULA chip designs to designing the early Arm CPU series from scratch using BBC BASIC

www.youtube.com/watch?v=W2yD...

12.11.2025 08:19 ๐Ÿ‘ 4 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

At least it's ripe for puns

26.10.2025 22:27 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

It definitely has a ring to it

07.10.2025 07:14 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
View of the Golden Gate Bridge in San Francisco on a clear sunny day, from the Baker Beach trail

View of the Golden Gate Bridge in San Francisco on a clear sunny day, from the Baker Beach trail

View of the Pacific Ocean, looking south from the Baker Beach trail in San Francisco on a sunny day as the sun starts to set

View of the Pacific Ocean, looking south from the Baker Beach trail in San Francisco on a sunny day as the sun starts to set

And on to another week. Grateful for everything, especially these views from the weekend.

22.09.2025 04:10 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

To build and run on Linux:

1. Make sure you've installed:
* clang
* lld
* Qemu with the 32-bit RISC-V system emulator

2. Clone the repo from GitHub and edit its run-dot-sh file so:

CC=clang
OBJCOPY=llvm-objcopy

3. Run in a terminal: ./run.sh

22.09.2025 02:53 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

It has:

* Basic process multi-tasking
* Paging
* An exception and system call handler
* A virtio-blk device driver to read and write a disk
* Simple command-line shell

An MIT-licensed starting point for folks. For more info, see:

seiya.me/blog/operati...

22.09.2025 02:49 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
OpenSBI v1.5.1
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name             : riscv-virtio,qemu
Platform Features         : medeleg
Platform HART Count       : 1
Platform IPI Device       : aclint-mswi
Platform Timer Device     : aclint-mtimer @ 10000000Hz
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform PMU Device       : ---
Platform Reboot Device    : syscon-reboot
Platform Shutdown Device  : syscon-poweroff
Platform Suspend Device   : ---
Platform CPPC Device      : ---
Firmware Base             : 0x80000000
Firmware Size             : 319 KB
Firmware RW Offset        : 0x40000
Firmware RW Size          : 63 KB
Firmware Heap Offset      : 0x47000
Firmware Heap Size        : 35 KB (total), 2 KB (reserved), 10 KB (used), 22 KB (free)
Firmware Scratch Size     : 4096 B (total), 244 B (used), 3852 B (free)
Runtime SBI Version       : 2.0

Boot HART ID              : 0
Boot HART Domain          : root
Boot HART Priv Version    : v1.12
Boot HART Base ISA        : rv32imafdch
Boot HART ISA Extensions  : sstc,zicntr,zihpm,zicboz,zicbom,sdtrig,svadu
Boot HART PMP Count       : 16
Boot HART PMP Granularity : 2 bits
Boot HART PMP Address Bits: 32
Boot HART MHPM Info       : 16 (0x0007fff8)
Boot HART Debug Triggers  : 2 triggers
Boot HART MIDELEG         : 0x00001666
Boot HART MEDELEG         : 0x00f0b509

[ snipped ]

virtio-blk: capacity is 0 bytes
file: hello.txt, size=83
file: meow.txt, size=6
> hello
Hello world from shell!

OpenSBI v1.5.1 ____ _____ ____ _____ / __ \ / ____| _ \_ _| | | | |_ __ ___ _ __ | (___ | |_) || | | | | | '_ \ / _ \ '_ \ \___ \| _ < | | | |__| | |_) | __/ | | |____) | |_) || |_ \____/| .__/ \___|_| |_|_____/|____/_____| | | |_| Platform Name : riscv-virtio,qemu Platform Features : medeleg Platform HART Count : 1 Platform IPI Device : aclint-mswi Platform Timer Device : aclint-mtimer @ 10000000Hz Platform Console Device : uart8250 Platform HSM Device : --- Platform PMU Device : --- Platform Reboot Device : syscon-reboot Platform Shutdown Device : syscon-poweroff Platform Suspend Device : --- Platform CPPC Device : --- Firmware Base : 0x80000000 Firmware Size : 319 KB Firmware RW Offset : 0x40000 Firmware RW Size : 63 KB Firmware Heap Offset : 0x47000 Firmware Heap Size : 35 KB (total), 2 KB (reserved), 10 KB (used), 22 KB (free) Firmware Scratch Size : 4096 B (total), 244 B (used), 3852 B (free) Runtime SBI Version : 2.0 Boot HART ID : 0 Boot HART Domain : root Boot HART Priv Version : v1.12 Boot HART Base ISA : rv32imafdch Boot HART ISA Extensions : sstc,zicntr,zihpm,zicboz,zicbom,sdtrig,svadu Boot HART PMP Count : 16 Boot HART PMP Granularity : 2 bits Boot HART PMP Address Bits: 32 Boot HART MHPM Info : 16 (0x0007fff8) Boot HART Debug Triggers : 2 triggers Boot HART MIDELEG : 0x00001666 Boot HART MEDELEG : 0x00f0b509 [ snipped ] virtio-blk: capacity is 0 bytes file: hello.txt, size=83 file: meow.txt, size=6 > hello Hello world from shell!

If you want to get started writing your own kernel for 32-bit RISC-V from scratch, here's how seiya.me did it in 1,000 lines of cleanly written C. There's documentation to go with it. Pretty cool IMHO!

github.com/nuta/operati...

22.09.2025 02:49 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

This is partially why I wanted to move from media to tech. After 20 years of publishing, from London riots to cyber-attacks, I no longer wanted to be so immersed in it.

12.09.2025 16:00 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
CERN Topoclustering on the Bendix G-15!
CERN Topoclustering on the Bendix G-15! YouTube video by Usagi Electric

A 1956 general-purpose digital computer, the Bendix G-15, plus an algorithm from the modern-day CERN ATLAS experiment equals... this:

www.youtube.com/watch?v=2y0D...

What takes under a microsecond on hardware today takes about 15 minutes on this vacuum-tube machine

25.08.2025 05:17 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Still from Displaced Gamers' https://www.youtube.com/watch?v=3G6vkRz-_0I video that depicts a frame from the NES game Metroid overlaid with statistics and a list of subroutines called in the game loop. The statistics show the percentage of time per frame spent in each subroutine as well as total frame counts and rendered frame counts.

Still from Displaced Gamers' https://www.youtube.com/watch?v=3G6vkRz-_0I video that depicts a frame from the NES game Metroid overlaid with statistics and a list of subroutines called in the game loop. The statistics show the percentage of time per frame spent in each subroutine as well as total frame counts and rendered frame counts.

Wonderfully detailed per-frame performance analysis of NES Metroid, and why it lags at certain points. It's super interesting to see the software engineering decisions taken back in the day.

As always, a great video by @displacedgamers.bsky.social IMO

www.youtube.com/watch?v=3G6v...

17.08.2025 07:43 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Zig's Lovely Syntax It's a bit of a silly post, because syntax is the least interesting detail about the language, but, still, I can't stop thinking how Zig gets this detail just right for the class of curly-braced langu...

#ziglang โ€™s Lovely Syntax

matklad.github.io/2025/08/09/z...

10.08.2025 16:11 ๐Ÿ‘ 79 ๐Ÿ” 12 ๐Ÿ’ฌ 10 ๐Ÿ“Œ 2
A large display in front of Manchester Piccadilly Station, England, shows a Windows blue-screen-of-death. Source: https://www.theregister.com/2016/08/29/bsods_at_scale_we_laugh_at_your_puny_five_storeys_heres_our_six_storey_fail/

A large display in front of Manchester Piccadilly Station, England, shows a Windows blue-screen-of-death. Source: https://www.theregister.com/2016/08/29/bsods_at_scale_we_laugh_at_your_puny_five_storeys_heres_our_six_storey_fail/

Also not quite Times Square, but Manchester Piccadilly Station in the UK was hard to miss

10.08.2025 09:47 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Just the place you'd want to spot a BSOD: While waiting in line for a roller coaster that lifts you up 124ft This bodes well

Does a roller coaster count? www.theregister.com/2020/02/25/b...

10.08.2025 09:40 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Veryl: A Modern Hardware Description Language Veryl is a hardware description language which is designed as a SystemVerilog alternative.

Oh, Veryl has a website, too: veryl-lang.org

Very nice. Veryl nyce.

19.07.2025 21:43 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
GitHub - veryl-lang/veryl: Veryl: A Modern Hardware Description Language Veryl: A Modern Hardware Description Language. Contribute to veryl-lang/veryl development by creating an account on GitHub.

I like alternative languages and architectures to see how syntax, structure, and other implementation details can be done differently.

There's not only ziglang.org which I think is cool, but also SystemVerilog alternative Veryl: github.com/veryl-lang/v... Yet another side project coming on.

19.07.2025 17:39 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Cutwater cans are middle-class Buzzballs. There, I said it.

18.06.2025 07:04 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0