Lunduke
News • Science & Tech
Make Computers Fun Again - Linux, UNIX, Alternative Operating Systems, Computer History, and Retro Computing. Also dad jokes.
Interested? Want to learn more about the community?
January 04, 2023

First post for 8 bit week, I'll talk about a bug. An 8 bit bug.

I recently made a post about anonymous functions in NovaForth: you can surround some code with braces and it'll compile it and leave the address to it on the stack. For example: "{ 5 + }" will leave on the stack a pointer to some code that adds five to things. I have tests for all of this of course so I know it works.

Except it didn't: "execute" is a word that takes a pointer to a function and calls it. So, "{ 3 5 } execute" should be, create a function that pushes 3 and 5 to the stack, then call that function. But doing that in the NovaForth console ( http://sevendral.com/repl/ ) today did not work! It cleared the stack instead, which usually means that the thing crashed and called "quit". So, a conundrum: I know that brace functions work because they're tested all to hell, therefore the problem is in "execute," but "execute" isn't something that can really have a problem. Here's the entire source to that function:

jmp

A single jump with no arguments. Which is a single byte of code in Vulcan, byte 0x5c as a matter of fact. Like I said, it's an 8-bit bug. :) How can one byte have a bug in it?

The story here is that execute takes the pointer given it, calls it, and returns the result. But the pointer it's given is already on the stack, so we just need to call and return, and that's a tail call of course so we can just omit the extra stack frame and let what we're calling return for us, so, it's a jmp. Great, but, how can one instruction have a bug?

Well turns out it was a little bit trickier: I wanted brace functions to not take up space unnecessarily, so, if you make one from interpret mode it sticks it on the heap but doesn't increment the heap: as long as you're not compiling anything it'll be fine, and it means you can do things like "{ foo blah } 10 do-times" (if you were to write a word that takes a function pointer like that). Brace words written this way failed but brace words nested inside functions, even other brace words, worked great. More of a conundrum!

I'm proud that I figured this out without a debugger, although I do need to write a debugger: the answer was that more than just brace functions get built "temporarily" on the heap. As it turns out, a lot more: words being parsed use the heap as temporary storage, so my "execute" was getting written on top of the newly-compiler temporary function and then I was jumping into it. I've since fixed that but found a couple more things that cannot follow a brace function. I need to rearrange things to either use a separate internal scratch buffer for that stuff, or a separate internal scratch buffer for brace functions, I suppose...

Interested? Want to learn more about the community?
What else you may like…
Videos
Podcasts
Posts
Articles
OpenBSD Says No to Rust Clones

"Smells like agenda," says OpenBSD lead, Theo de Raadt.

Lifetime Sub Sale, Plus Your Name on the LCOS About Window:
https://lunduke.substack.com/p/lifetime-sub-sale-plus-your-name

More from The Lunduke Journal:
https://lunduke.com/

00:10:14
September 30, 2026
LCOS 0.7 : SimCity Fork & Default Custom Kernel

The Lunduke Computer Operating System has made the custom, "stainless" (Rust-free) Linux Kernel the default as it moves towards a 1.0 release.

LCOS GitHub Page:
https://github.com/BryanLunduke/LCOS

Lifetime Sub Sale, Plus Your Name on the LCOS About Window:
https://lunduke.substack.com/p/lifetime-sub-sale-plus-your-name

More from The Lunduke Journal:
https://lunduke.com/

00:23:04
September 28, 2026
Is AI The Future of Programming?

AI submissions to the Linux Kernel are skyrocketing. Prominent developers are going full "Vibe Coding". The shift is radical and rapid.

More from The Lunduke Journal:
https://lunduke.com/

00:38:32
November 22, 2023
The futility of Ad-Blockers

Ads are filling the entirety of the Web -- websites, podcasts, YouTube videos, etc. -- at an increasing rate. Prices for those ad placements are plummeting. Consumers are desperate to use ad-blockers to make the web palatable. Google (and others) are desperate to break and block ad-blockers. All of which results in... more ads and lower pay for creators.

It's a fascinatingly annoying cycle. And there's only one viable way out of it.

Looking for the Podcast RSS feed or other links? Check here:
https://lunduke.locals.com/post/4619051/lunduke-journal-link-central-tm

Give the gift of The Lunduke Journal:
https://lunduke.locals.com/post/4898317/give-the-gift-of-the-lunduke-journal

The futility of Ad-Blockers
November 21, 2023
openSUSE says "No Lunduke allowed!"

Those in power with openSUSE make it clear they will not allow me anywhere near anything related to the openSUSE project. Ever. For any reason.

Well, that settles that, then! Guess I won't be contributing to openSUSE! 🤣

Looking for the Podcast RSS feed or other links?
https://lunduke.locals.com/post/4619051/lunduke-journal-link-central-tm

Give the gift of The Lunduke Journal:
https://lunduke.locals.com/post/4898317/give-the-gift-of-the-lunduke-journal

openSUSE says "No Lunduke allowed!"
September 13, 2023
"Andreas Kling creator of Serenity OS & Ladybird Web Browser" - Lunduke’s Big Tech Show - September 13th, 2023 - Ep 044

This episode is free for all to enjoy and share.

Be sure to subscribe here at Lunduke.Locals.com to get all shows & articles (including interviews with other amazing nerds).

"Andreas Kling creator of Serenity OS & Ladybird Web Browser" - Lunduke’s Big Tech Show - September 13th, 2023 - Ep 044
September 29, 2026

New Workflow Handles Multiple Simultaneous Agent Sessions

TLDR - I’m loving Herdr for managing my many agentic sessions - and have replaced Zellij workflow with Herdr.

I work with constant multiple long running agentic sessions. If you aren’t there yet, I predict more than half of the people reading this will be. I work from a Mac laptop and ssh into Linux to run agentic cli’s: codex, Claude Code, pi, OMP, and OpenCode. I had been using Zellij, a modern Tmux competitor, to meet the need of long running sessions that don’t stop when I close my laptop. But is good enough ever good enough? Is the grass greener on the other side of the fence? I was interested in T3 Code as I follow it’s creator Theogg’s Youtube videos. I subscribe to T3.chat for $8/month because he’s great at supporting new open weights models quickly. Great for testing them out or whenever I want to start a thread with no memory of me or any previous discussion. I’ve been waiting for it to get out of beta but I think ...

September 29, 2026

[Poll] "True/False": A.I. "Vibe Coding" Does Not Replace Understanding the Concepts of Software Design.

Note: I asked Grok a "bigger" question, partly about being "DevOps Illiterate." (I may add the reply later ... edits to just show parts that seemed most important)

sample from Grok - RE: What's "Dangerous" Behavior in "Vibe Code"?

📑
A definition you can use.... A more dangerous vibe coder is a person (or team) who:

1. Accepts generated structure they cannot redraw from memory (files, types, where state lives).
2. Uses wrong or borrowed names for lifecycle and storage, so they cannot ask the next question.
3. Does not treat the current diff as a hypothesis to test (diff apathy).
4. Increases blast radius (prod data, secrets, payments, other people’s machines) faster than they increase checks.
5. Iterates by prompt when the right move is to subdivide, freeze a spec, or compute vs store a value on purpose.

Illiteracy is a symptom. Diff apathy is the mechanism. ...

post photo preview
September 30, 2026

The End of Subsidies Has Begun - Kind of

OpenAI just announced that they are slashing the usage of the $200/mo subscription in half! Surely this is the beginning of the end of subsidies that the Chicken Littles have been declaring in their endless quest that SOMEHOW, SOMEWAY, the world is going to stop using generative AI.

Enjoying the amazing value that $200 has been giving you from OpenAI and Anthropic? Well -- it's a terrible thing, a TERRIBLE thing Chicken Little says. Those are subsidized plans and subsidies can't last forever. You are going to get hooked on $200 subs and then have the rug pulled. The RUG PULLED Chicken Little says with his scary voice.

And yesterday OpenAI confirmed that Chicken Little was right all along. And you know it's just a short hop from there to the end of generative AI - that Chicken Little desparately hopes happens.

Calm down Chicken Little - the sky may fall some day - but today is not that day.

You see, OpenAI released Gpt 6.1 Sol and it's their smartest...

Lunduke Lifetime Discount Ends in 1 Day; Zelda, Larry, SQ, & Keen Walls Available

TL;DR: Lifetime Subscription discount ends in one day. There are currently 4 “Lifetime Walls” with space available for more names (the Oregon Trail Wall is now full).

We’ve been running a massive discount on Lunduke Journal Lifetime Subscriptions for the entire months of June and July. And it has been an absolute blast. There are now 21 (twenty-one!) retro computer walls overflowing with your names.

Pure insanity. Huge thank you to everyone who has supported The Lunduke Journal.

But the discounted price only runs through July 31st… and that moment is just about here.

When the calendar ticks over into August (just a hair over 24 hours from now), the Lunduke Journal Lifetime Subscription price goes back to normal.

  • If the calendar still says it’s July, the Lifetime price is still discounted to $125.

  • If the calendar says August… the price returns to $300.

There are, as of this exact moment, 4 retro game themed “Lifetime Walls” which still have some space for more names (check Lunduke.com for the full list):

  1. Legend of Zelda

  2. Commander Keen 4

  3. Space Quest 4

  4. Leisure Suit Larry

Grab a discounted Lifetime Subscription (scroll down for the details), then email Lunduke (bryan at lunduke.com) with which Wall you’d like to appear on.

 

First come, first served. Once a Wall is full, it’s full. So if there’s a specific Wall you’d like to be on, don’t dilly dally.

How to Grab a Discounted Lifetime Subscription:

There are 3 different ways to pick up a Lunduke Journal Lifetime sub. All of them work great. Choose whichever works best for you!

Remember: These discounted prices go back up to normal ($300) on August 1st.

Get a Lifetime Subscription via Locals:

  1. Go to Lunduke.Locals.com/support.

  2. Select “Give Once“.

  3. Enter “125“ into the amount field.

  4. After checking out, Lunduke will toss you an email once your account is set to full lifetime status. (This usually happens within a few hours.)

Get a Lifetime Subscription via Substack:

  1. Go to Lunduke.Substack.com/subscribe.

  2. Select the “Lifetime Subscription” option.

  3. After checking out, Lunduke will toss you an email once your account is set to full lifetime status. (This usually happens within a few hours.)

If you would also like full, Lifetime access to Lunduke.Locals.com (which is included):

  1. Make a free account on Lunduke.Locals.com.

  2. Email “bryan at lunduke.com” with the email address you use on both Substack and Locals (can be different email addresses).

  3. Lunduke will toss you an email once your account is set to full lifetime status on Locals.

Get a Lifetime Subscription with Bitcoin:

Bonus: Save an extra $10 with the Bitcoin option, as Bitcoin processing has fewer fees associated with it.

bc1qyjakve8fywm8pz2v99v57yhjj0vzr2vjze6fcq

  • Email “bryan at lunduke.com” with the following information: What time you made the transaction, how much was sent (in Bitcoin), and the email address you use (or plan to use) on Locals.com or Substack.com.

-Lunduke

Read full Article
post photo preview
Oregon Trail, Keen, & Leisure Suit Larry Lifetime Walls

Holy frijoles! There are now 20 (twenty!) Lifetime Subscriber Walls, filled with the names of roughly one bazillion Lunduke Journal supporters.

Just amazing.

Two super quick updates:

  1. The “Desqview/X”, “NeXTSetp”, & “TRS-80 Model 100” Walls are now full! (Check them out on Lunduke.com and at the end of new shows.)

  2. There are 3 new Walls available to put your John Hancock on… and, just for kicks, these ones aren’t from Classic Operating Systems… they’re Classic Games:

    1. Oregon Trail

    2. Commander Keen 4

    3. Leisure Suit Larry

 

I don’t expect space on these Walls to last long. First come first served.

A huge thank you to all of The Lunduke Journal subscribers. Your support is deeply appreciated. You make this possible.

-Lunduke

Read full Article
post photo preview
TRS-80 Model 100 joins The Lunduke Journal Lifetime Wall party!

Buckle up, Buttercup. Because The Lunduke Journal is about to blow your mind.

  1. The “BeOS” Wall Lifetime Subscriber Wall is now full (see all of them on Lunduke.com)!

  2. We’ve added a new “TRS-80 Model 100” Wall (because we can)! That’s the 19th Lifetime Subscriber Wall! 19!

  3. The discounted Lifetime Lunduke Journal Subscriptions are still available through to the end of this month (July).

Which means there are, as of this exact moment, 4 Walls with space available (see Lunduke.com for the full list of Walls). But these fill up wicked fast.

  1. Emacs (only a few spots left)

  2. Desqview/X (a little less than 2/3rd’s full)

  3. NeXTStep (still plenty of space)

  4. TRS-80 Model 100 (just launched)

 

Nice, right?

Worth noting: The “TRS-80 Model 100” has very limited screen resolution (240 x 64), which means only a small number of names can fit on that wall. If you want on it, I’d let me know right away.

Grab a discounted Lifetime Subscription (if you don’t already have one), then let me know (email “bryan at lunduke.com”) which Wall you’d like to see your name on.

Huge high five to everyone who has already added their name to a Wall. At the current rate, we’ll have over 20 retro computer themed walls, filled with all of your names, by the end of the month.

And, doggone it, that’s amazing.

-Lunduke

Read full Article
See More
Available on mobile and TV devices
google store google store app store app store
google store google store app tv store app tv store amazon store amazon store roku store roku store
Powered by Locals