I've been itching to make blog posts about these two topics.
This is the epitome of my excitement, and hyperlinks are done out the wazoo, so sorry in advance for this being so disorganized compared to my previous entries.
A positive ramble about programming
So, starting this off: what encouraged me to write about software development was Remy (Raymii)'s blog posts about running semi-modern Linux on their 2000 HP Jornada and developing in C++ on Android.
Now, with that being said.
I need to this out of my system: I love computers, but it's fucking awesome once you learn to write your own programs. I believe every piece of hardware that runs software should allow the user to develop for theirs, on theirs. (Again, you can run Linux software on Android).
I'm still relatively new to coding, so to get my feet wet, I developed a few identical prototypes in LÖVE, TIC-80, and Batari BASIC (Atari 2600), mostly to study the differences between syntax. Once I get farther, I hope to share them on a separate blog.

There are also BASIC implementations for other consoles:
- FastBASIC for the Atari 5200/8-bit
- 7800basic for the Atari 7800
- IntyBASIC for the Intellivision, which I believe is currently being used to develop very good Castlevania and Super Mario Bros. clones
- I'd even count Petit Computer for the DS / SmileBASIC for the 3DS / Switch, and they were officially released on the consoles!
C has also caught my attention, because it's possible to develop for, ahem:
- MS-DOS
- Windows 98/2000/XP
- Game Boy
- Mega Drive / Genesis
- Super Nintendo
- PlayStation 1
- SEGA Saturn
- Nintendo 64
- Dreamcast
- GameCube and Wii
- Xbox
- Nintendo DS
- PlayStation Portable
- Nintendo 3DS
- Possibly the Nintendo Entertainment System, Commodores, Apple II?
and what have you.
An example of C's strengths in action is ClassiCube -- a Minecraft Classic clone I've brought up a dozen times -- which managed to be so damn portable because of it, and potentially even have cross-platform multiplayer if the device can connect to online servers.
A standard for software that can run on devices old & new
What if there was a standard interpreter or hardware spec that people had to develop for? Like the Z-machine that was used by Infocom to port their text adventures (like Zork) to various home computers.
To elaborate further, what I mean is something that could hopefully lead to:
- Being able to write a program and then run it everywhere, from modern PCs and smartphones to old PDAs and esoteric video game consoles
- Forcing people to write optimized code, keeping in mind the limitations of the "hardware spec"
The first thought would be an emulator, in which case you're on the right track. NES emulators are found everywhere and can play NES games on anything, from modern computers to old iPods. But what would be like that, but for non-game software?

I'm starting with the one that seems to have been made for this. uxn is a virtual machine inspired by retro computing, created by, from what I understand, a small collective called Hundred Rabbits, two artists that reside on a sailboat and develop "low-tech solutions" in lieu of modern computing.
I see uxn as a similar project to fantasy consoles like PICO-8 or TIC-80, but focused less on writing fun games and more on writing useful software for constrained environments, including its own assembly programming language called uxntal. It has a small, yet growing open-source ecosystem of software, often distributed as ROMs, and emulators are widely available for many esoteric devices, ranging from the IBM PC to the original Game Boy to the Nintendo DS.
However, there's also another contender that's more of a happy accident than an intentional solution:
![]()
DOS. Good ol' fashioned DOS.
This is the reason why I wanted to write about this topic, because I wanted to run Turbo C, Pascal or QBasic on my 2DS, like a "big boy" version of Petit Computer.
Why DOS? There's the Apple II, Commodore PET/VIC-20/64, BBC Micro, ZX Spectrum... but I've noticed that DOS emulators are available everywhere and on almost everything (even modded Minecraft) likely thanks to DOS gaming enthusiasts, and it has 40+ years of software to emulate (see here, here, here, and here). The most popular example is DOSBox, but there are some exceptions (faster computers can use DOSBox-X and 86Box, while some resource-constrained devices like the DS use special emulators like DSx86).
Though, unlike uxn, there's unfortunately a higher barrier-to-entry: the most constrained system I've seen uxn run on was the Game Boy, but the weakest device I've seen run DOS outside of an 8088 was the Nintendo DS (and even my original 2DS struggles with DOSBox).
And the "DOS specification" (as I'll call it) is too flexible. I believe a "DOS" computer can range from an 8088 that barely runs Windows 3 to a Pentium processor that can run Ozone.